JavaSec | 某次代码审计比赛记录

admin 2025年4月29日16:55:17评论0 views字数 1400阅读4分40秒阅读模式
本文由掌控安全学院 -   cs 投稿

Track安全社区投稿~  

千元稿费!还有保底奖励~(https://bbs.zkaq.cn)

一、背景

之前某位同事组织了代码审计比赛,周末我抽空看了3套java系统。发现这些CMS有CSRF漏洞,但因为主流浏览器已无法利用,所以没有在文章中展示,也没有提交。

目前只找到当时的 PDF版本,复制过来后格式可能有些不太整齐,请见谅,以下简单记录一下代审思路,比较简单,适合新手学习。

二、系统 A

2.1、 多处后台sql 注入

备注

目前系统存在多处直接拼接参数执行SQL操作,存在SQL注入风险,这里仅举一处作为示例。

复现

JavaSec | 某次代码审计比赛记录

sleep()函数测时间盲注

JavaSec | 某次代码审计比赛记录

代码如下,

JavaSec | 某次代码审计比赛记录

传参直接拼接到了sql 语句中,

JavaSec | 某次代码审计比赛记录

2.2、 后台多处存储型xss

备注

仅展示1处

复现

编辑HTML代码,插入页面提交,

JavaSec | 某次代码审计比赛记录

代码如下

接受前端传参,没有过滤直接入库

JavaSec | 某次代码审计比赛记录

2.3、 3处垂直越权

备注

作者为获取老师和学生信息分别写了3个ajax接口,但鉴权未完善,导致学生也能访问敏感信息。目前发现其中一个接口可通过学号获取学生信息。

复现

JavaSec | 某次代码审计比赛记录

代码如下,

接口处没做鉴权,

JavaSec | 某次代码审计比赛记录

有两个过滤器:一个只拦截“/admin/*”路径用于管理员访问,另一个只校验用户是否登录。

JavaSec | 某次代码审计比赛记录

三、系统 B

3.1、 鉴权绕过

备注

鉴权逻辑有待优化,目前拦截器存在问题,可能导致接口被越权访问。。

复现

用学生账户登录,访问 http://192.168.3.34:8888/teacher/list,即可查看老师的相关信息(包括账户和密码)。

JavaSec | 某次代码审计比赛记录

代码如下,

接口处没有二次鉴权,直接查看结果后返回

JavaSec | 某次代码审计比赛记录

拦截器代码的核心逻辑有问题,url.split("/")[0] 结果是空字符串 ""。比如分割 /teacher/list 得到 ["", "teacher", "list"],而任何字符串都包含空字符串,所以正常登录时条件总是成立。

3.2、 后台存储型XSS

复现

JavaSec | 某次代码审计比赛记录

代码如下

接受参数后,直接入库,没有任何过过滤

JavaSec | 某次代码审计比赛记录

四、系统 C

4.1、 前台用户多处越权

备注

当前仅以越权查看订单信息展示,

复现

A用户查看到B用户订单信息,同理可以查看到任意用户任意订单

JavaSec | 某次代码审计比赛记录

代码如下

虽然获取了userid 但是并未使用, 而是直接将前端传入的订单号带入数据库查看

JavaSec | 某次代码审计比赛记录

4.2、swagger信息泄露

复现

直接在无痕浏览器即可以打开

http://192.168.3.34:8080/v2/api-docs

http://192.168.3.34:8080/swagger-ui.html#/316492970221592controller

JavaSec | 某次代码审计比赛记录

代码如下,

JavaSec | 某次代码审计比赛记录

4.3、支付代码逻辑缺陷

备注

当前代码,没有校验是否成功支付的逻辑,直接点击“支付成功”即可

复现

点击购买任意商品,走到支付,

JavaSec | 某次代码审计比赛记录
JavaSec | 某次代码审计比赛记录
JavaSec | 某次代码审计比赛记录

代码如下,

JavaSec | 某次代码审计比赛记录
JavaSec | 某次代码审计比赛记录

4.4、 文件上传

备注

因为是spring 的jar包部署,正常情况下,文件上传危害有限,目前相当于存储型XSS

复现

JavaSec | 某次代码审计比赛记录

代码如下

直接获取后缀保存。

JavaSec | 某次代码审计比赛记录

4.5、存储存储型XSS

备注

需要管理员在后台做设置,危害一般般 当前仅展示1处

复现

在上面正常添加就行,

JavaSec | 某次代码审计比赛记录

代码如下

JavaSec | 某次代码审计比赛记录

4.6、信息泄露

备注

鸡肋,可忽略

复现

直接get请求就行

http://192.168.3.34:8080/personal/updateInfo

JavaSec | 某次代码审计比赛记录
申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,

所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.

JavaSec | 某次代码审计比赛记录

 

原文始发于微信公众号(掌控安全EDU):JavaSec | 某次代码审计比赛记录

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月29日16:55:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   JavaSec | 某次代码审计比赛记录http://cn-sec.com/archives/4015697.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息