描述
Apache Shiro 1.1.0之前的版本和JSecurity 0.9.x在将URI路径与shiro.ini文件中的条目进行比较之前没有规范化URI路径,这使得远程攻击者能够通过特制的请求绕过预期的访问限制,如/./ account/index.jsp URI。
影响版本
Apache Shiro ≤ 1.0.0
复现过程
- 启动环境:

2. 访问/admin

3.改Path,加入/.

成功登录
原理分析
1.构造POC

2.断点调试

直接使用getPathWithinApplication()获得URL,没有对URL进行路径标准化,导致出现了/./admin
这种URL String

接着就会被 pathPattern=/**
配置

根据配置文件知,/**
是不需要进行登录验证的,而/./admin
等于/admin
,但却因为被错误配置而绕过了登录验证,造成路径越权访问。
官方修复方案
增加路径标准化方法

客户修复方案
更新Apache Shiro ≥ 1.1.0。