CVE-2016-6802
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路径控制。