跳转至

RuoYi-Scan 若依版本兼容性矩阵#

生成日期:2026-09-07 | 工具版本:v1.2.4 | 维护者:雪山乘客

1. 概述#

本文档记录 Ruoyi-Scan v1.1 对各若依(RuoYi)框架版本的检测模块覆盖情况, 帮助使用者快速评估对目标版本的检测能力,也为后续 POC 开发提供版本适配参考。


2. 若依版本里程碑#

版本 关键变化 影响
4.2.0 首次发布含 params[dataScope] SQL 注入;/common/upload 扩展名校验弱 SQL 注入 + 文件上传可利用
4.6.0 修复 params[dataScope] SQL 注入;加强 /common/upload 扩展名校验 SQL 注入修复,文件上传加固
4.7.0 收紧 /monitor/job/edit 白名单;修复路径穿越 (/common/download/resource) 定时任务 RCE + 文件读取修复
4.7.8 当前最新单机稳定版(本工具靶场版本) 仅剩 SSTI / 配置类漏洞
5.0.0 RuoYi-Vue 前后端分离,JWT 鉴权,接口前缀 /prod-api/ 传统 Cookie 认证链路失效
Cloud RuoYi-Cloud 微服务版,Nacos + Gateway + 前后端分离 新攻击面:Nacos 配置泄露

3. 版本-模块覆盖矩阵#

图例#

符号 含义
覆盖(POC 已验证通过)
⚠️ 部分覆盖(依赖目标配置)
不适用(该版本已修复漏洞或架构不支持)
🔵 仅 RuoYi-Cloud 版本适用

矩阵#

检测模块 严重度 <4.6.0 4.6.x 4.7.x 5.0.x Cloud 说明
SQL 注入 (role) high 🔵 🔵 >=4.0,<4.6 — 4.6.0 修复
SQL 注入 (dept) high 🔵 🔵 >=4.0,<4.6 — 4.6.0 修复
任意文件读取 high 🔵 🔵 >=4.0,<4.7 — 4.7.0 修复路径穿越
定时任务文件读取 high 🔵 🔵 >=4.0,<4.7 — 4.7.0 收紧白名单
文件下载路径穿越 high 🔵 🔵 >=4.0,<4.7 — 4.7.0 修复
任意文件上传 high 🔵 🔵 >=4.0,<4.7 — 4.7.0 收紧扩展名
定时任务 RCE high 🔵 🔵 >=4.0,<4.7 — 4.7.0 白名单修复
Thymeleaf SSTI high ⚠️ ⚠️ ⚠️ ⚠️ ⚠️ 全版本(依赖 Controller 写法)
代码生成 SSTI high ⚠️ ⚠️ ⚠️ ⚠️ ⚠️ 全版本(依赖模块启用)
默认口令爆破 high 全版本(依赖用户未改密码)
Druid 弱口令 high ⚠️ ⚠️ ⚠️ ⚠️ ⚠️ 全版本(依赖 Druid 开启)
未授权批量检测 medium ⚠️ ⚠️ ⚠️ ⚠️ ⚠️ 全版本(依赖配置不当)
Nacos 未授权 medium ⚠️ ⚠️ ⚠️ ⚠️ 全版本(依赖 Nacos 部署)
Cloud Nacos 泄露 high 仅 Cloud 版
Swagger 未授权 medium ⚠️ ⚠️ ⚠️ ⚠️ ⚠️ 全版本(依赖 Swagger 开启)
目录扫描 low 全版本
指纹识别 全版本 + Cloud

4. 利用链版本覆盖#

利用链 严重度 <4.6.0 4.6.x 4.7.x 5.0.x Cloud 前置条件
ruoyi_sql_to_rce high SQL 注入提取密码 → 文件上传 → Webshell
defaultpw_to_webshell high ⚠️ ⚠️ ⚠️ ⚠️ ⚠️ 默认口令登录 → 文件上传写 Webshell
nacos_to_dbcreds high ⚠️ ⚠️ ⚠️ ⚠️ Nacos 未授权 → 读取数据库配置

5. v4.7.x 深度分析(最广泛部署版本)#

5.1 当前覆盖#

v4.7.x 是若依框架最广泛部署的版本(截至 2026 年 7 月),本工具对其检测能力如下:

类别 可用模块 数量
确认可检测 Thymeleaf SSTI、代码生成 SSTI、默认口令、Druid 弱口令、未授权批量、Swagger 未授权、Nacos 未授权 7
确认已修复 SQL 注入(2)、文件读取(3)、文件上传、定时任务 RCE 7
利用链 defaultpw_to_webshell(需默认口令)、nacos_to_dbcreds(需 Nacos 未授权) 2

5.2 已知 Gap#

  1. 权限绕过类漏洞:若依 v4.7.x 存在若干未授权/越权接口,当前 UnauthBatchPlugin 已有部分覆盖,但缺少颗粒度更高的独立 POC
  2. Shiro 反序列化:若依 v4.7.x 使用 Shiro 做认证框架,已知 Shiro 1.8.0 以下存在 rememberMe 反序列化漏洞 (CVE-2016-4437),当前未覆盖
  3. Fastjson 反序列化:若依 v4.7.x 依赖 Fastjson,低版本存在反序列化漏洞,当前未覆盖

5.3 建议新增 POC#

优先级 漏洞 CVE 适用版本 说明
P0 Shiro rememberMe 反序列化 CVE-2016-4437 <4.7.0 (Shiro <1.8.0) 通过 rememberMe Cookie 反序列化 RCE
P1 越权数据访问 N/A >=4.0 /system/user/list 等接口越权检测
P1 任意密码重置 N/A <4.7.2 部分版本存在密码重置逻辑缺陷
P2 Fastjson 反序列化 CVE-2022-25845 依赖 Fastjson <1.2.83 通过 JSON 输入触发

6. RuoYi-Cloud 微服务版指纹#

6.1 指纹特征#

特征类型 特征值 置信度
强特征路径 /nacos/ (Nacos 控制台) strong (0.5)
强特征路径 /gateway/ (Spring Gateway) strong (0.5)
强关键字 RuoYi-Cloud若依微服务 strong (0.5)
弱关键字 ruoyi-cloudRuoYiCloudnacos weak (0.2)

6.2 Cloud 版独有的攻击面#

攻击面 对应模块 说明
Nacos 配置中心 RuoyiCloudNacosPlugin 可泄露数据库/Redis/JWT 密钥
Spring Gateway 暂无 Gateway Actuator 未授权可动态添加路由 RCE
Sentinel 控制台 暂无 Sentinel 未授权可能泄露限流规则
微服务间 RPC 暂无 Feign/Dubbo 接口未鉴权

6.3 Cloud 版注意事项#

  • 单机版若依插件也适用于 Cloud 版的 ruoyi-admin 模块(路径前缀不同)
  • Cloud 版鉴权方式改为 JWT + Gateway 统一鉴权,传统 Cookie 链路不适用
  • Cloud 版登录接口可能在 Gateway 层(/auth/login),而非传统 /login

7. 版本识别机制#

7.1 识别流程#

目标 URL → 请求 /login 页面 → 正则提取 X.Y.Z 版本号
         → 未匹配则请求根路径 → 正则提取 / ?v=X.Y 参数
         → 未匹配则请求 /actuator/info → 提取 JSON 中的版本
         → 仍未识别 → version=""(全量 POC,保守策略)

7.2 版本正则#

VERSION_PATTERN = re.compile(r"\b(4|5)\.(\d+)\.(\d+)\b")
  • 匹配版本号:4.x.y5.x.y
  • 来源:/login 页面 HTML 中的 footer 和 JS 变量

7.3 版本过滤逻辑#

  • affected_versions = "" → 全版本适用,不参与过滤
  • affected_versions = ">=4.0,<4.7" → 仅 4.0 ≤ version < 4.7 适用
  • 版本未识别(version="")→ 保守策略,不做过滤,跑全部 POC

8. 总结#

版本段 覆盖模块数 高危模块 中危模块 利用链 评级
<4.6.0 16 9 5 3 🟢 全面
4.6.x 13 6 5 2 🟡 较好
4.7.x 11 4 5 2 🟡 一般
5.0.x 9 2 5 1 🟠 不足
Cloud 11 5 5 2 🟡 较好

结论:v4.6.0 以下版本覆盖最全面;v4.7.x 因多个核心漏洞被修复而覆盖下降,建议优先补充 Shiro 反序列化等 v4.7.x 适用的新 POC。