渗透测试实战 | 若依ruoyi框架
字数 1250 2025-08-10 08:28:07

若依(RuoYi)框架渗透测试实战指南

1. 若依框架简介

若依(RuoYi)是一款基于Spring Boot+Bootstrap的快速开发框架,广泛应用于国内企业级应用开发。作为开源项目,其安全性备受关注。

2. 环境搭建与信息收集

2.1 默认配置信息

  • 默认后台地址:/admin
  • 默认账号密码:admin/admin123
  • 默认Swagger接口文档地址:/swagger-ui.html

2.2 版本识别方法

  1. 通过页面底部版权信息
  2. 通过/favicon.ico图标特征
  3. 通过/css/ry-ui.css等静态资源文件

3. 常见漏洞利用

3.1 未授权访问漏洞

3.1.1 Swagger接口未授权

  • 路径:/swagger-ui.html
  • 风险:可直接查看和调用所有API接口

3.1.2 Druid监控未授权

  • 路径:/druid/index.html
  • 风险:泄露数据库连接信息、SQL执行记录

3.2 SQL注入漏洞

3.2.1 常见注入点

  • 用户管理模块的查询接口
  • 日志查询模块的排序参数
  • 数据字典的模糊查询接口

3.2.2 利用示例

GET /system/user/list?orderBy=update_time and (select 1 from (select sleep(5))a)-- 

3.3 文件上传漏洞

3.3.1 富文本编辑器上传

  • 路径:/common/upload
  • 绕过方法:修改Content-Type为image/jpeg

3.3.2 个人头像上传

  • 路径:/system/user/profile/avatar
  • 风险:可能绕过文件类型检查

3.4 XSS漏洞

3.4.1 存储型XSS

  • 常见位置:公告管理、评论模块
  • 利用方式:插入<script>alert(1)</script>

3.4.2 反射型XSS

  • 常见位置:搜索功能、错误消息回显
  • 利用示例:/search?keyword=<script>alert(1)</script>

3.5 权限绕过漏洞

3.5.1 水平越权

  • 修改用户ID参数访问他人数据
  • 示例:/system/user/getInfo?userId=2 (当前用户ID为1)

3.5.2 垂直越权

  • 直接访问管理员API接口
  • 示例:/system/role/list (普通用户身份)

4. 安全加固建议

4.1 配置加固

  1. 修改默认账号密码
  2. 禁用Swagger和Druid的未授权访问
  3. 限制文件上传类型和后缀

4.2 代码加固

  1. 所有查询接口添加权限校验
  2. SQL查询使用预编译语句
  3. 输出内容进行HTML实体编码

4.3 日志监控

  1. 记录所有敏感操作日志
  2. 监控异常登录行为
  3. 设置操作频率限制

5. 渗透测试流程总结

  1. 信息收集:识别框架版本和组件
  2. 漏洞扫描:检查已知漏洞点
  3. 权限测试:尝试未授权和越权访问
  4. 注入测试:验证SQL注入和XSS漏洞
  5. 文件测试:检查上传功能安全性
  6. 报告整理:记录发现的风险点

6. 参考资源

  1. 若依官方文档
  2. OWASP Top 10安全指南
  3. Spring Security最佳实践

通过以上方法,可以全面评估若依框架应用的安全性,发现潜在风险并及时修复。

若依(RuoYi)框架渗透测试实战指南 1. 若依框架简介 若依(RuoYi)是一款基于Spring Boot+Bootstrap的快速开发框架,广泛应用于国内企业级应用开发。作为开源项目,其安全性备受关注。 2. 环境搭建与信息收集 2.1 默认配置信息 默认后台地址: /admin 默认账号密码: admin/admin123 默认Swagger接口文档地址: /swagger-ui.html 2.2 版本识别方法 通过页面底部版权信息 通过 /favicon.ico 图标特征 通过 /css/ry-ui.css 等静态资源文件 3. 常见漏洞利用 3.1 未授权访问漏洞 3.1.1 Swagger接口未授权 路径: /swagger-ui.html 风险:可直接查看和调用所有API接口 3.1.2 Druid监控未授权 路径: /druid/index.html 风险:泄露数据库连接信息、SQL执行记录 3.2 SQL注入漏洞 3.2.1 常见注入点 用户管理模块的查询接口 日志查询模块的排序参数 数据字典的模糊查询接口 3.2.2 利用示例 3.3 文件上传漏洞 3.3.1 富文本编辑器上传 路径: /common/upload 绕过方法:修改Content-Type为 image/jpeg 3.3.2 个人头像上传 路径: /system/user/profile/avatar 风险:可能绕过文件类型检查 3.4 XSS漏洞 3.4.1 存储型XSS 常见位置:公告管理、评论模块 利用方式:插入 <script>alert(1)</script> 3.4.2 反射型XSS 常见位置:搜索功能、错误消息回显 利用示例: /search?keyword=<script>alert(1)</script> 3.5 权限绕过漏洞 3.5.1 水平越权 修改用户ID参数访问他人数据 示例: /system/user/getInfo?userId=2 (当前用户ID为1) 3.5.2 垂直越权 直接访问管理员API接口 示例: /system/role/list (普通用户身份) 4. 安全加固建议 4.1 配置加固 修改默认账号密码 禁用Swagger和Druid的未授权访问 限制文件上传类型和后缀 4.2 代码加固 所有查询接口添加权限校验 SQL查询使用预编译语句 输出内容进行HTML实体编码 4.3 日志监控 记录所有敏感操作日志 监控异常登录行为 设置操作频率限制 5. 渗透测试流程总结 信息收集:识别框架版本和组件 漏洞扫描:检查已知漏洞点 权限测试:尝试未授权和越权访问 注入测试:验证SQL注入和XSS漏洞 文件测试:检查上传功能安全性 报告整理:记录发现的风险点 6. 参考资源 若依官方文档 OWASP Top 10安全指南 Spring Security最佳实践 通过以上方法,可以全面评估若依框架应用的安全性,发现潜在风险并及时修复。