【Java代码审计】若依框架-4.6.0
一、环境搭建
在对若依框架做代码审计时,有必要先去学习一下若依框架的组成架构,做一个小型的开发项目再来。
到官网下载对应版本源码:https://github.com/yangzongzhuan/RuoYi
采用5.7版本Mysql数据库。JDK使用1.8版本
配置好数据库信息
更改端口并启动项目
二、SQL注入漏洞(CVE-2023-49371)
若依框架采用了MyBatis的开发,找SQL注入时全局搜索${
符号,尤其是设计到用户的这种SQL语句
根据Id向上寻找
直接定位Controller层,两处调用了selectRoleList
在前端页发起请求查看数据包
并无params.dataScope字段,我们尝试手动添加并用SQLMap 测试
1 | python sqlmap.py -r test.txt --batch --level 3 --risk 3 |
测试成功
三、Shiro反序列化漏洞
查看shiro的版本信息,1.7.0不在Shiro550的漏洞范围内
全局查找cipherKey,看密钥是否是固定值
cipherKey 密钥
固定从配置文件中获取
而配置文件这里使用了固定的密钥
四、Thymeleaf模板注入
全局搜索::
构造POC
1 | fragment=__*%7bnew%20java.util.Scanner(T(java.lang.Runtime).getRuntime().exec(%22calc%22).getInputStream()).next()%7d__::.x |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Lusen的小窝!
评论