CVE-2010-3863

描述

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

影响版本

Apache Shiro ≤ 1.0.0

复现过程

  1. 启动环境:

2. 访问/admin

3.改Path,加入/.

成功登录

原理分析

1.构造POC

2.断点调试

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

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

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

官方修复方案

增加路径标准化方法

客户修复方案

更新Apache Shiro ≥ 1.1.0。