欢迎转发,请勿抄袭
一、前言
项目代码源自炼石计划的代码审计系统三
二、使用到的工具
idea
idea插件(Free MyBatis Too)
mysql
三、漏洞挖掘过程
将代码部署完成后,进行正常访问,该系统是仿天猫的ui做的
当浏览到一个页面参数category_id是整数时,页面正常
当category_id传入一个字符串时,是一个报错的信息
本来这是一个很正常的报错信息,数据类型的一个报错,跟进代码,发现是定义了category_id为整数类型,传入进来是字符类型,因此报错。
那么,按照正常来说,这种的报错信息无害,但是,log4j的扫描工具检测到log4j远程命令执行。继续跟进代码,并在下方下断点。防止往下执行。
这里直接报错,未进行下一步执行,也就没有类似logger.info()这些的触发方法。通过排查发现log4j的配置文件可能有问题。以下是两处相对可疑的地方:
可疑点一:
可疑点二:
这两个加起来,猜测是不是等于logger.info()????
尝试使用log4j的dnslog攻击语句
测试dnslog回显结果
测试远程命令执行touch /tmp/123
ldap收到请求
查看tmp下的文件
命令已经执行,idea日志输出
相关代码回复:"审计3"
文章声明:文章涉及到的工具、及教程仅供学习参考,请勿非法使用。否则与作者无关!
原文始发于微信公众号(yudays实验室):javaweb代码审计记录(三)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论