漏洞描述(介绍、成因)
使用 Apache Shiro 进行身份验证、权限控制时,可以精心构造恶意的URL,利用Apache Shiro 和 Spring Boot 对URL的处理的差异化,可以绕过Apache Shiro 对 Spring Boot 中的 Servlet的权限控制,越权并实现未授权访问。
漏洞危害
- 越权实现未授权访问
适用场景
- Apache Shiro < 1.5.1
实验环境
个人虚拟机
- 攻击机:
- win10 + Burp Suite
- 靶机:
- vulhub 192.168.10.128
漏洞复现过程
1、 开启docker环境
2、 构造url绕过验证
恶意请求: /xxx/…;/admin/
绕过权限校验,访问到管理页面
URL请求过程
客户端请求URL: /xxx/…;/admin/
Shrio 内部处理得到校验URL为 /xxx/… 校验通过
SpringBoot 处理 /xxx/…;/admin/ ,最终请求 /admin/ , 成功访问了后台请求
修复建议
1、升级1.5.2版本及以上
2、尽量避免使用*通配符作为动态路由拦截器的URL路径表达式。
注:本文章仅作技术学习作用,一切实验皆在个人虚拟环境下进行!!!