渗透测试实战 | 若依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 版本识别方法
- 通过页面底部版权信息
- 通过
/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 利用示例
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 配置加固
- 修改默认账号密码
- 禁用Swagger和Druid的未授权访问
- 限制文件上传类型和后缀
4.2 代码加固
- 所有查询接口添加权限校验
- SQL查询使用预编译语句
- 输出内容进行HTML实体编码
4.3 日志监控
- 记录所有敏感操作日志
- 监控异常登录行为
- 设置操作频率限制
5. 渗透测试流程总结
- 信息收集:识别框架版本和组件
- 漏洞扫描:检查已知漏洞点
- 权限测试:尝试未授权和越权访问
- 注入测试:验证SQL注入和XSS漏洞
- 文件测试:检查上传功能安全性
- 报告整理:记录发现的风险点
6. 参考资源
- 若依官方文档
- OWASP Top 10安全指南
- Spring Security最佳实践
通过以上方法,可以全面评估若依框架应用的安全性,发现潜在风险并及时修复。