来Track安全社区投稿~
千元稿费!还有保底奖励~(https://bbs.zkaq.cn)
一、背景
之前某位同事组织了代码审计比赛,周末我抽空看了3套java系统。发现这些CMS有CSRF漏洞,但因为主流浏览器已无法利用,所以没有在文章中展示,也没有提交。
目前只找到当时的 PDF版本,复制过来后格式可能有些不太整齐,请见谅,以下简单记录一下代审思路,比较简单,适合新手学习。
二、系统 A
2.1、 多处后台sql 注入
备注
目前系统存在多处直接拼接参数执行SQL操作,存在SQL注入风险,这里仅举一处作为示例。
复现
sleep()函数测时间盲注
代码如下,
传参直接拼接到了sql 语句中,
2.2、 后台多处存储型xss
备注
仅展示1处
复现
编辑HTML代码,插入页面提交,
代码如下
接受前端传参,没有过滤直接入库
2.3、 3处垂直越权
备注
作者为获取老师和学生信息分别写了3个ajax接口,但鉴权未完善,导致学生也能访问敏感信息。目前发现其中一个接口可通过学号获取学生信息。
复现
代码如下,
接口处没做鉴权,
有两个过滤器:一个只拦截“/admin/*”路径用于管理员访问,另一个只校验用户是否登录。
三、系统 B
3.1、 鉴权绕过
备注
鉴权逻辑有待优化,目前拦截器存在问题,可能导致接口被越权访问。。
复现
用学生账户登录,访问 http://192.168.3.34:8888/teacher/list,即可查看老师的相关信息(包括账户和密码)。
代码如下,
接口处没有二次鉴权,直接查看结果后返回
拦截器代码的核心逻辑有问题,url.split("/")[0] 结果是空字符串 ""。比如分割 /teacher/list 得到 ["", "teacher", "list"],而任何字符串都包含空字符串,所以正常登录时条件总是成立。
3.2、 后台存储型XSS
复现
代码如下
接受参数后,直接入库,没有任何过过滤
四、系统 C
4.1、 前台用户多处越权
备注
当前仅以越权查看订单信息展示,
复现
A用户查看到B用户订单信息,同理可以查看到任意用户任意订单
代码如下
虽然获取了userid 但是并未使用, 而是直接将前端传入的订单号带入数据库查看
4.2、swagger信息泄露
复现
直接在无痕浏览器即可以打开
http://192.168.3.34:8080/v2/api-docs
http://192.168.3.34:8080/swagger-ui.html#/316492970221592controller
代码如下,
4.3、支付代码逻辑缺陷
备注
当前代码,没有校验是否成功支付的逻辑,直接点击“支付成功”即可
复现
点击购买任意商品,走到支付,
代码如下,
4.4、 文件上传
备注
因为是spring 的jar包部署,正常情况下,文件上传危害有限,目前相当于存储型XSS
复现
代码如下
直接获取后缀保存。
4.5、存储存储型XSS
备注
需要管理员在后台做设置,危害一般般 当前仅展示1处
复现
在上面正常添加就行,
代码如下
4.6、信息泄露
备注
鸡肋,可忽略
复现
直接get请求就行
http://192.168.3.34:8080/personal/updateInfo
所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.
原文始发于微信公众号(掌控安全EDU):JavaSec | 某次代码审计比赛记录
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论