快速审计记录(二)--oasys
oasys最新版未进行审计,此次审计针对历史版本进行审计学习。 fastjson 在最开始看项目大概的时候就注意到了这个fastjson 1.2.36版本,多半是有漏洞的,但是去看pom文件 全局搜索JSON.parseObject 并没有类调用此方法。 在最新版本已经升级到1.2.83版本 薛定谔的SQL注入 查看mapper的写法,发现两个仅有的mapper均有使用$进行拼接 这里
oasys最新版未进行审计,此次审计针对历史版本进行审计学习。
fastjson
在最开始看项目大概的时候就注意到了这个fastjson

1.2.36版本,多半是有漏洞的,但是去看pom文件

全局搜索JSON.parseObject

并没有类调用此方法。
在最新版本已经升级到1.2.83版本

薛定谔的SQL注入
查看mapper的写法,发现两个仅有的mapper均有使用$进行拼接


这里跟踪src/main/resources/mappers/address-mapper.xml对应的dao

这个dao被outaddresspaging接口调用

进行debug测试

查看控制台输出

发现确实带入到了语句中,但是语句执行报错了,后端返回500,理论上这里存在SQL,但是进行复现的时候并未成功。
这里去看第二个mapper对应的dao
src/main/java/cn/gson/oasys/mappers/NoticeMapper.java的sortMyNotice

其调用接口如下

这里要通知列表的分页,因为通知太少 只有一个,就先搁置吧。

任意文件上传

修改后缀为jsp

查看接口

代码处对文件后缀并未过滤,可上传jsp,这里我想尝试 https://forum.butian.net/share/2499
此文章的做法,上传jar包,控制路径,getshell,但是发现代码对文件名进行了随机数生成,无法目录穿越

失败的任意文件读取和任意文件删除

发现图片展示,对应的id,想尝试构造目录穿越,查看代码

下一位,任意文件删除。G


越权

用admin用户查看用户列表,切换普通用户

可以看到普通用户没有用户管理这一项
用普通用户的cookie进行操作依旧可行

debug查看代码

并未做权限设置。并且之后查看代码发现管理员的操作接口都未作权限设置。
XSS
xss就不审计了,没有任何过滤,基本上跟数据库又交互的地方都有XSS
小结
后台文件处并不能控制路径 所以并不能RCE