记一次Apache Shiro权限绕过实战
字数 926 2025-08-06 08:35:44
Apache Shiro 权限绕过漏洞 (CVE-2020-11989) 实战分析
漏洞概述
Apache Shiro 是一个强大且易用的 Java 安全框架,用于执行身份验证、授权、密码和会话管理。在 Apache Shiro 1.5.3 之前的版本中,当与 Spring 控制器一起使用时,特制请求可能导致身份验证绕过。
影响范围
- Apache Shiro 版本 < 1.5.3
- 仅影响 Spring 框架中使用 Shiro 进行鉴权的系统
漏洞原理
该漏洞源于 Shiro 在处理特定格式的 URL 时存在缺陷,攻击者可以通过构造特殊格式的请求绕过身份验证机制。
漏洞验证方法
- 识别目标系统使用 Shiro 框架(可通过 Cookie 中的
rememberMe字段识别) - 在目标 URL 后添加
/;/并拼接正常路径,例如:http://target.com/;/login - 观察页面响应:
- 如果页面正常返回且不需要验证,则存在漏洞
- 如果返回错误或重定向到登录页,则可能已修复
实战利用步骤
-
识别目标:通过 Burp Suite 等工具识别使用 Shiro 框架的网站
-
测试反序列化漏洞:
- 先尝试经典的 Shiro 反序列化漏洞 (CVE-2016-4437)
- 如果已修复,则尝试权限绕过漏洞
-
权限绕过验证:
http://target.com/;/protected/resource -
信息收集与扩大战果:
- 通过 FOFA 等平台搜索同类系统
- 尝试弱口令进入同类系统后台
- 收集后台接口 URL
- 将这些 URL 拼接到目标站点进行未授权访问:
http://target.com/;/collected/api/endpoint
防御措施
- 升级到 Apache Shiro 1.5.3 或更高版本
- 实施严格的 URL 路径验证
- 对所有敏感接口实施二次验证
- 禁用不必要的 HTTP 方法
工具推荐
-
识别工具:
- Burp Suite 插件(可自动识别 Shiro 框架)
- 手工检查 Cookie 中的
rememberMe字段
-
利用工具:
- Shiro 反序列化利用工具(先尝试)
- 手工构造
/;/格式的 URL
注意事项
- 该漏洞需要结合具体场景利用,单独存在可能危害有限
- 利用前应确认目标系统的授权状态
- 漏洞利用后应及时报告给相关方