记一次前台任意文件下载漏洞挖掘
字数 877 2025-08-03 16:45:03

前台任意文件下载漏洞挖掘与分析

1. 漏洞发现背景

  • 目标系统:某后台管理系统
  • 初始发现:通过弱口令admin/123456成功登录
  • 关键功能点:备份管理界面存在可疑的filename参数直接包含文件名

2. 初步漏洞验证

  1. 在备份管理功能中发现filename参数直接传递文件名
  2. 使用Burp Suite抓包测试,确认存在任意文件下载漏洞
  3. 发现该漏洞需要管理员权限才能利用

3. 漏洞利用限制与绕过

3.1 初始限制

  • 漏洞位于后台功能,需要管理员权限
  • 直接访问会302跳转到登录页面
  • 常规绕过方法尝试失败

3.2 源码获取

  • 通过GitHub链接获取系统源码
  • 系统架构:Spring + Shiro组合

4. Shiro权限绕过技术分析

4.1 Shiro URL路径表达式

  • 格式:Ant格式
  • 通配符:
    • ?:匹配一个字符
    • *:匹配零个或多个字符串
    • **:匹配路径中的零个或多个路径

4.2 分号(;)处理特性

  • Shiro处理URI时,遇到分号(;)会删除其后的所有字符
  • 例如:/fdsf;/../hello/1//fdsf

4.3 绕过条件

  1. 存在anon(匿名可访问)权限的目录
  2. 该目录配置以路径通配符**结尾

5. 实际绕过步骤

  1. 发现images目录满足条件:
    • 匿名可访问(anon权限)
    • 配置以**结尾
  2. 构造特殊URL:
    • 格式:/images;/../目标文件路径
  3. 通过Burp Suite发送构造的请求
  4. 成功实现前台任意文件下载

6. 漏洞修复建议

  1. 对文件下载功能实施严格的权限控制
  2. 限制文件下载路径,避免目录穿越
  3. 更新Shiro配置:
    • 避免使用过于宽松的**通配符
    • 对敏感路径实施精确匹配
  4. 修复分号处理问题:
    • 在应用层对URI进行规范化处理
    • 过滤或拒绝包含特殊字符(如分号)的请求

7. 扩展思考

  1. 类似框架的其他权限绕过技术
  2. 文件下载漏洞与其他漏洞的串联利用
  3. 防御措施的纵深部署

8. 参考资源

  1. Shiro权限绕过分析文章
  2. Shiro官方文档关于URL匹配的部分
  3. OWASP关于任意文件下载漏洞的指南
前台任意文件下载漏洞挖掘与分析 1. 漏洞发现背景 目标系统:某后台管理系统 初始发现:通过弱口令 admin/123456 成功登录 关键功能点:备份管理界面存在可疑的 filename 参数直接包含文件名 2. 初步漏洞验证 在备份管理功能中发现 filename 参数直接传递文件名 使用Burp Suite抓包测试,确认存在任意文件下载漏洞 发现该漏洞需要管理员权限才能利用 3. 漏洞利用限制与绕过 3.1 初始限制 漏洞位于后台功能,需要管理员权限 直接访问会302跳转到登录页面 常规绕过方法尝试失败 3.2 源码获取 通过GitHub链接获取系统源码 系统架构:Spring + Shiro组合 4. Shiro权限绕过技术分析 4.1 Shiro URL路径表达式 格式:Ant格式 通配符: ? :匹配一个字符 * :匹配零个或多个字符串 ** :匹配路径中的零个或多个路径 4.2 分号(;)处理特性 Shiro处理URI时,遇到分号(;)会删除其后的所有字符 例如: /fdsf;/../hello/1/ → /fdsf 4.3 绕过条件 存在anon(匿名可访问)权限的目录 该目录配置以路径通配符 ** 结尾 5. 实际绕过步骤 发现 images 目录满足条件: 匿名可访问(anon权限) 配置以 ** 结尾 构造特殊URL: 格式: /images;/../目标文件路径 通过Burp Suite发送构造的请求 成功实现前台任意文件下载 6. 漏洞修复建议 对文件下载功能实施严格的权限控制 限制文件下载路径,避免目录穿越 更新Shiro配置: 避免使用过于宽松的 ** 通配符 对敏感路径实施精确匹配 修复分号处理问题: 在应用层对URI进行规范化处理 过滤或拒绝包含特殊字符(如分号)的请求 7. 扩展思考 类似框架的其他权限绕过技术 文件下载漏洞与其他漏洞的串联利用 防御措施的纵深部署 8. 参考资源 Shiro权限绕过分析文章 Shiro官方文档关于URL匹配的部分 OWASP关于任意文件下载漏洞的指南