CVE-2020-1957(Shiro<1.5权限绕过)
1. 漏洞描述
Shiro框架通过拦截器功能来对用户访问权限进行控制,如anon, authc等拦截器。anon为匿名拦截器,不需要登录即可访问;authc为登录拦截器,需要登录才可以访问。主要是Spring web在匹配url的时候没有匹配上/导致绕过。
2. 影响范围
Apache Shiro < 1.5.3
3. 未授权绕过思路
客户端请求URL:
/xxx/..;/admin/
- Shiro内部处理得到校验:
/xxx/..
校验通过 - SpringBoot先处理:
/xxx/..
到;
结束,最终请求/admin/
访问到后台
路径最后的 /
代表一个目录,如果不加代表一个资源
4. 漏洞复现
4.1 未授权访问后台页面
访问
/admin/
遇到302跳转
4.2 利用Java特性绕过
访问
/xx/..;/admin/
实现绕过
5. 漏洞分析
…
6. 修复建议
升级1.5.2版本及以上
尽量避免使用*通配符作为动态路由拦截器的URL路径表达式。