Vulhub | Shiro CVE-2020-1957漏洞复现
一、 漏洞描述
使用Apache Shiro进行身份验证、权限控制时,可以精心构造恶意的URL,利用Apache Shiro和Spring Boot对URL处理的差异化,可以绕过Shiro对Spring Boot中的Servlet的权限控制,从而越权并实现越权非授权访问。
二、 影响版本
Shiro < 1.5.2
三、 实验环境
攻击机:Kali Linux 192.168.230.128
靶场:Vulhub shiro CVE-2020-1957
工具:BurpSuite
四、 复现过程
1、开启docker环境
2、输入127.0.0.1:8080进入靶场环境,
3、抓包分析,出现setcookie:rememberMe=deleteMe这个shiro的流量特征
4、按照正常流程输入账号密码登陆后进入admin后台
5、通过构造url进行绕过验证,构造payload:/xxx/..;/admin/,成功绕过验证进入到admin账户页面
五、 实验总结
对于/xxx/..;/绕过,在shiro中,当拿到/xxx/..;/aa/的时候,会根据 ; 进行截断,认为访问的是/xxx/..,然后再拿着/xxx/..在需要进行权限判断的地方去找,若发现不需要权限校验,则放行至spring进行处理。
在Spring中会对输入的url进行处理,首先对于/xxx/..;/aa/,先通过removeSemicolonContent去掉 ; 符号,即/xxx/..;/aa/,最终访问的是/aa/,绕过了权限限制。