前言
想在本篇文章之中总结shiro的经典漏洞,形成自己对shiro洞的看法。
0x01 权限绕过漏洞
漏洞原理:
Spring Boot使用Shiro进行身份验证、权限控制。在Shiro <= 1.5.1的版本中,攻击者可以通过精心构造的URL,利用Shiro和SpringBoot对URL的处理的差异化,绕过Shiro对Spring Boot中的Servlet的权限控制实现未授权访问。如通过构造**..;**这样的跳转,可以绕过Shiro中对目录的权限限制。
漏洞利用:
正常访问admin登录界面,会跳转至login.html

在URL前添加/xxx/..;/,即访问 localhost:8080/xxx/..;/admin/ 则会显示登录成功直接进入admin管理界面

- 客户端请求URL: /xxx/..;/admin/index
- shrio内部处理得到校验URL为 /xxx/..,因为不等于/admin/**所以绕过用户名密码校验。校验通过
- springboot处理 /xxx/..;/admin/index , 最终请求 /admin/index, 成功访问了后台请求.