记一次实战中对Ruoyi系统的渗透
字数 1439 2025-08-22 12:22:15

Ruoyi系统渗透测试实战指南

1. Ruoyi系统简介

Ruoyi是一个基于Spring Boot和Shiro权限管理框架的开源后台管理系统,广泛应用于企业级应用开发。由于其流行性,系统存在多个已知安全漏洞。

2. 信息收集方法

2.1 识别Ruoyi系统

使用搜索引擎语法:

body="Ruoyi"

此语法可发现大量使用Ruoyi系统的网站。

3. 常见漏洞利用

3.1 Druid控制台弱口令漏洞

漏洞描述:Druid是阿里巴巴开源的数据库连接池,Ruoyi系统集成了Druid监控控制台,存在默认弱口令风险。

利用步骤

  1. 访问Druid控制台路径:/druid
  2. 尝试默认凭证:
    • 用户名:ruoyi
    • 密码:123456
  3. 成功登录后可获取数据库连接信息、SQL执行记录等敏感数据
  4. 可利用控制台功能进行数据重置或删除操作

危害:可能导致数据泄露、数据篡改或删除。

3.2 默认密码保存登录后台

漏洞描述:部分Ruoyi系统安装后保留了默认登录凭证或保存了密码。

利用方法

  1. 直接访问后台登录页面
  2. 使用Burp Suite等工具拦截请求查看凭证
  3. 尝试常见默认密码组合

3.3 任意文件下载漏洞

漏洞描述:低版本Ruoyi系统存在任意文件下载漏洞,允许攻击者下载服务器上的任意文件。

利用方法

  1. 构造文件下载请求,利用路径遍历下载敏感文件
  2. 高版本对..进行了过滤,但低版本仍可穿越目录
  3. 示例利用方式:
    • 下载配置文件:/common/download?fileName=../../application.yml
    • 下载数据库配置文件:/common/download?fileName=../../ruoyi-admin/src/main/resources/application-druid.yml

影响:可能导致数据库凭证、系统配置等敏感信息泄露。

3.4 模板注入漏洞

漏洞描述:Ruoyi系统某些接口存在模板注入漏洞,可能导致远程代码执行。

漏洞位置

src\main\java\com\ruoyi\web\controller\monitor

多个控制器方法接受String类型参数且未充分过滤。

利用方法

  1. 构造恶意SpEL表达式:
    ${T(java.lang.Runtime).getRuntime().exec("calc.exe")}
    
  2. 绕过技巧:
    • T(之间添加多个空格
    • 对Payload进行URL编码
    • 修改请求方法(GET/POST互换)
  3. 获取Shell:
    • 执行反向连接命令连接到攻击者服务器
    • 注意:此操作风险较高,实际测试中应谨慎

3.5 用户信息泄露

漏洞描述:系统存在接口泄露用户敏感信息。

利用方法

  1. 通过Druid控制台或其他接口查询用户表数据
  2. 获取管理员凭证或哈希值
  3. 可利用泄露信息进行进一步渗透

3.6 添加高权限用户

漏洞描述:部分接口权限控制不严,允许添加高权限用户。

利用方法

  1. 找到用户管理相关接口
  2. 构造请求添加管理员权限用户
  3. 注意:实际渗透测试中只需证明漏洞存在,不应实际添加用户

4. 防御建议

  1. 修改所有默认凭证,包括Druid控制台和后台登录
  2. 及时升级到最新版本Ruoyi系统
  3. 限制Druid控制台的访问IP
  4. 对用户输入进行严格过滤,特别是SpEL表达式
  5. 加强权限控制,避免越权操作
  6. 定期进行安全审计和渗透测试

5. 法律声明

  1. 所有渗透测试必须获得系统所有者明确授权
  2. 未经授权的测试属于违法行为
  3. 本文仅用于教育目的,作者不承担任何因滥用本文信息导致的后果
  4. 实际测试中应对敏感信息进行充分打码处理

通过以上方法,安全人员可以全面评估Ruoyi系统的安全性,发现并修复潜在漏洞,提高系统整体安全水平。

Ruoyi系统渗透测试实战指南 1. Ruoyi系统简介 Ruoyi是一个基于Spring Boot和Shiro权限管理框架的开源后台管理系统,广泛应用于企业级应用开发。由于其流行性,系统存在多个已知安全漏洞。 2. 信息收集方法 2.1 识别Ruoyi系统 使用搜索引擎语法: 此语法可发现大量使用Ruoyi系统的网站。 3. 常见漏洞利用 3.1 Druid控制台弱口令漏洞 漏洞描述 :Druid是阿里巴巴开源的数据库连接池,Ruoyi系统集成了Druid监控控制台,存在默认弱口令风险。 利用步骤 : 访问Druid控制台路径: /druid 尝试默认凭证: 用户名: ruoyi 密码: 123456 成功登录后可获取数据库连接信息、SQL执行记录等敏感数据 可利用控制台功能进行数据重置或删除操作 危害 :可能导致数据泄露、数据篡改或删除。 3.2 默认密码保存登录后台 漏洞描述 :部分Ruoyi系统安装后保留了默认登录凭证或保存了密码。 利用方法 : 直接访问后台登录页面 使用Burp Suite等工具拦截请求查看凭证 尝试常见默认密码组合 3.3 任意文件下载漏洞 漏洞描述 :低版本Ruoyi系统存在任意文件下载漏洞,允许攻击者下载服务器上的任意文件。 利用方法 : 构造文件下载请求,利用路径遍历下载敏感文件 高版本对 .. 进行了过滤,但低版本仍可穿越目录 示例利用方式: 下载配置文件: /common/download?fileName=../../application.yml 下载数据库配置文件: /common/download?fileName=../../ruoyi-admin/src/main/resources/application-druid.yml 影响 :可能导致数据库凭证、系统配置等敏感信息泄露。 3.4 模板注入漏洞 漏洞描述 :Ruoyi系统某些接口存在模板注入漏洞,可能导致远程代码执行。 漏洞位置 : 多个控制器方法接受String类型参数且未充分过滤。 利用方法 : 构造恶意SpEL表达式: 绕过技巧: 在 T 和 ( 之间添加多个空格 对Payload进行URL编码 修改请求方法(GET/POST互换) 获取Shell: 执行反向连接命令连接到攻击者服务器 注意 :此操作风险较高,实际测试中应谨慎 3.5 用户信息泄露 漏洞描述 :系统存在接口泄露用户敏感信息。 利用方法 : 通过Druid控制台或其他接口查询用户表数据 获取管理员凭证或哈希值 可利用泄露信息进行进一步渗透 3.6 添加高权限用户 漏洞描述 :部分接口权限控制不严,允许添加高权限用户。 利用方法 : 找到用户管理相关接口 构造请求添加管理员权限用户 注意 :实际渗透测试中只需证明漏洞存在,不应实际添加用户 4. 防御建议 修改所有默认凭证,包括Druid控制台和后台登录 及时升级到最新版本Ruoyi系统 限制Druid控制台的访问IP 对用户输入进行严格过滤,特别是SpEL表达式 加强权限控制,避免越权操作 定期进行安全审计和渗透测试 5. 法律声明 所有渗透测试必须获得系统所有者明确授权 未经授权的测试属于违法行为 本文仅用于教育目的,作者不承担任何因滥用本文信息导致的后果 实际测试中应对敏感信息进行充分打码处理 通过以上方法,安全人员可以全面评估Ruoyi系统的安全性,发现并修复潜在漏洞,提高系统整体安全水平。