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.

描述比较简单,官方修改的时候对于最新版本做了简单的修改:


WebUtils.java
+ contextPath = normalize(decodedRequestString(request, contextPath));
if ("/".equeal(contextPath)) {
    contextPath = "";
 }
 return contextPath;

主要添加了上面一行,在请求处理之前先decoded,然后恢复正常。所以最后的exp很简单:

比如作为一个普通账户的时候,知道admin路径,在访问的时候访问admin路径,然后burp截断,在请求路径后面添加%2f,即可绕过shiro路径控制。

2016-10-25
Contents

⬆︎TOP