> Apache Shiro before 1.3.2 allows attackers to bypass intended servlet filters and gain access by leveraging use of a non-root servlet context path.
#### shiro在路径控制的时候,攻击者可以绕过过滤器,访问被过滤的路径,影响版本shrio <1.3.2
![](https://images.seebug.org/1479462547379)
#### 可以从上图中明确看出来最新版本修改的代码,如下
![](https://images.seebug.org/1479462567158)
#### 官方修复处理
最新的1.3.2版本对于request的url处理添加了`contextPath = normalize(decodeRequestString(request, contextPath));` 即先对url进行decode,然后再恢复正常,接下来进入处理流程。
#### POC
例如普通用户访问admin账户路径的时候会出现403,此时使用burp截断,然后在访问路径的最后添加`%2f`,既可绕过shiro检测。因为对于浏览器来说`%2f`会被自动编码为`/`,但是burp截断之后进入shiro,shiro未对其解码,所以可以绕过。
暂无评论