Apache Shiro 身份验证绕过漏洞 (CVE-2020-1957)
一、漏洞描述
Apache Shiro 是一个功能强大且易于使用的 Java 安全框架,它执行身份验证、授权、加密和会话管理。
在具有 Spring 动态控制器的 1.5.2 之前的 Apache Shiro 版本中,攻击者可以使用恶意构造的请求 ..;
利用 Apache Shiro 和 Spring Boot 对URL的处理的差异化,可以绕过 Apache Shiro 对 Spring Boot 中的 Servlet 的权限控制,越权并实现未授权访问。
二、影响版本
Apache Shiro < 1.5.1
三、漏洞复现
通过执行以下命令,使用 Spring 2.2.2 和 Shiro 1.5.1 启动应用程序。
docker-compose up -d
目录:/shiro/CVE-2020-195
docker-compose ps
docker-compose ps
2、登录验证
四、URL请求过程:
- 客户端请求URL: `/xxx/..;/admin/`
- Shrio 内部处理得到校验URL为 `/xxxx/..`,校验通过
- SpringBoot 处理 `/xxx/..;/admin/` , 最终请求 `/admin/`, 成功访问了后台请求。
五、 修复建议
根据影响版本中的信息,排查并升级到安全版本
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通