CVE-2020-1957
漏洞名称
Apache Shiro 认证绕过漏洞 CVE-2020-1957
利用条件
Apache Shiro < 1.5.1
漏洞原理
Apache Shiro 是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。
CVE-2020-1957,Spring Boot中使用 Apache Shiro 进行身份验证、权限控制时,可以精心构造恶意的URL,利用 Apache Shiro 和 Spring Boot 对URL的处理的差异化,可以绕过 Apache Shiro 对 Spring Boot 中的 Servlet 的权限控制,越权并实现未授权访问
漏洞利用
- 客户端请求URL:
/xxx/..;/admin/
- Shrio 内部处理得到校验URL为
/xxxx/..
,校验通过 - SpringBoot 处理
/xxx/..;/admin/
, 最终请求/admin/
, 成功访问了后台请求。 - 构造恶意请求
/xxx/..;/admin/
,即可绕过权限校验,访问到管理页面。
修复建议
升级版本