若依在真实攻防下的总结
字数 1539 2025-08-29 22:41:01

若依(RuoYi)系统真实攻防总结

一、指纹识别

  • 若依系统验证码特征:验证码为运算表达式
  • 典型识别特征:紫色"正在加载系统资源"的界面样式

二、弱口令利用

  1. 后台默认凭证

    • admin/admin123
    • ry/admin123
  2. 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系统下利用价值较低

五、后台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修改数据库中的数据
    • 复现步骤:
      1. 创建两个计划任务
      2. 修改其中一个任务的WHERE条件指向另一个任务
      3. 将恶意命令(如JNDI注入)转换为hex编码
      4. 执行修改后的任务实现RCE

七、RuoYi-Vue利用技巧

  1. 前端获取

    • 源码地址:RuoYi-Vue
    • 搭建本地前端用于测试API
  2. 实战技巧

    • 通过JS代码查找后端API地址
    • 即使界面被魔改,仍可通过源码分析找到漏洞点

八、若依不出网打法

  1. 传统方法

    • 尝试MySQL文件写入权限
    • 写入恶意文件利用
  2. 更有效方法

    • 利用若依自带的文件上传接口
    • 虽然限制上传jar文件,但可通过Snakeyaml加载内容
    • 构造特殊payload直接加载执行

总结

若依系统在不同版本中存在多种安全漏洞,从弱口令到RCE漏洞均有涉及。攻击者可通过指纹识别确定版本后,选择相应的攻击链进行渗透。防御方应确保系统升级到最新版本,修改默认凭证,并限制后台功能的访问权限。

若依(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系统下利用价值较低 五、后台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漏洞均有涉及。攻击者可通过指纹识别确定版本后,选择相应的攻击链进行渗透。防御方应确保系统升级到最新版本,修改默认凭证,并限制后台功能的访问权限。