若依在真实攻防下的总结
字数 1539 2025-08-29 22:41:01
若依(RuoYi)系统真实攻防总结
一、指纹识别
- 若依系统验证码特征:验证码为运算表达式
- 典型识别特征:紫色"正在加载系统资源"的界面样式
二、弱口令利用
-
后台默认凭证:
- admin/admin123
- ry/admin123
-
Druid监控界面:
- 低版本可直接访问/druid路径
- 默认凭证:
- ruoyi/123456
- admin/123456
- 高版本需要认证后才能访问
三、前台Shiro默认key漏洞
- 影响版本:RuoYi <= v4.3.0
- 默认密钥:
- <=4.3版本:fCq+/xW488hMTCD+cmJ3aQ==
-
4.3版本:zSyK5Kp6PZAAjlT+eeNMlg==
- 利用方法:
- 使用Shiro反序列化工具
- 通过AES加密构造payload实现getshell
- 修复情况:4.5之后的某个版本修复了此漏洞
四、后台任意文件读取+Shiro组合拳
- 影响版本:RuoYi <= v4.5.0
- 漏洞路径:
/common/download/resource?resource=/profile/../../../../etc/passwd - 利用条件:需要登录后台
- 利用场景:
- Linux系统下:
- 读取.bash_history或/proc/self/cmdline获取jar包路径
- 读取jar包中的Shiro key
- 结合Shiro反序列化实现RCE
- Windows系统下利用价值较低
- Linux系统下:
五、后台Thymeleaf SSTI
- 影响版本:RuoYi <= v4.7.1
- 注意事项:
- 低版本可能不存在相关接口,需实际测试
- Linux反弹shell时需要base64编码
六、后台计划任务getShell
1. 版本:RuoYi < v4.6.2
-
利用方法:
- 登录后台后新建定时任务
- 使用JNDI注入攻击Snakeyaml链
- 推荐工具:JNDIEXP
-
两种攻击方式:
- JNDI注入攻击Snakeyaml
- 直接攻击Snakeyaml:
- 在调用目标字符串中填写
org.yaml.snakeyaml.Yaml.load - 远程加载恶意jar包
- 可使用预制的内存马:yaml-payload-for-ruoyi
- 或使用yaml-payload执行命令
- 在调用目标字符串中填写
2. 版本:4.7.2 > RuoYi >=4.6.2
- 防护措施:
- 屏蔽ldap远程调用
- 屏蔽http(s)远程调用
- 屏蔽rmi远程调用
- 绕过方法:
- 系统会过滤单引号,将其替换为空
- 通过添加单引号实现bypass
3. 版本:RuoYi <=4.7.8
- 防护措施:
- 白名单限制,仅允许调用com.ruoyi下的包
- 绕过方法:
- 利用genTableServiceImpl执行SQL修改数据库中的数据
- 复现步骤:
- 创建两个计划任务
- 修改其中一个任务的WHERE条件指向另一个任务
- 将恶意命令(如JNDI注入)转换为hex编码
- 执行修改后的任务实现RCE
七、RuoYi-Vue利用技巧
-
前端获取:
- 源码地址:RuoYi-Vue
- 搭建本地前端用于测试API
-
实战技巧:
- 通过JS代码查找后端API地址
- 即使界面被魔改,仍可通过源码分析找到漏洞点
八、若依不出网打法
-
传统方法:
- 尝试MySQL文件写入权限
- 写入恶意文件利用
-
更有效方法:
- 利用若依自带的文件上传接口
- 虽然限制上传jar文件,但可通过Snakeyaml加载内容
- 构造特殊payload直接加载执行
总结
若依系统在不同版本中存在多种安全漏洞,从弱口令到RCE漏洞均有涉及。攻击者可通过指纹识别确定版本后,选择相应的攻击链进行渗透。防御方应确保系统升级到最新版本,修改默认凭证,并限制后台功能的访问权限。