1. Apache Shiro组件介绍
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。内置了可以连接大量安全数据源(又名目录)的Realm,如LDAP、关系数据库(JDBC)、类似INI的文本配置资源以及属性文件等。
2. 漏洞描述
Apache Shiro 1.5.2之前的版本,由于Shiro拦截器和requestURI的匹配流程与Web框架的拦截器的匹配流程有差异,攻击者构造一个特殊的http请求,可以绕过Shiro的认证,未授权访问敏感路径。
此漏洞有两种攻击方式,第一种攻击方式适用于Shiro < 1.5.0版本,由于Shiro 1.5.0版本修复补丁考虑不全面,导致补丁绕过,出现了第二种攻击方式,适用于Shiro < 1.5.2版本。
3. 漏洞分析
Shiro 1.4.2 -> 1.5.0 版本补丁分析
对比Shiro 1.4.2与Shiro 1.5.0版本的改动,Shiro在org.apache.shiro.web.filter.PathMatchingFilter类中添加了删除requestURI结尾的/的代码。
目前受影响的Apache Shiro版本:
Apache Shiro < 1.5.2
4. 修复建议
Apache Shiro最新版本已经修复此漏洞,请受漏洞影响的用户下载最新版本。
下载链接:
http://shiro.apache.org/download.html