前言

Apache Shiro 是一个强大且易用的 Java 安全框架,通过它可以执行身份验证、授权、密码和会话管理。使用 Shiro 的易用 API,您可以快速、轻松地保护任何应用程序 —— 从最小的移动应用程序到最大的 WEB 和企业应用程序。

2022年6月29日,Apache官方披露Apache Shiro权限绕过漏洞(CVE-2022-32532),当Apache Shiro中使用RegexRequestMatcher进行权限配置,且正则表达式中携带"."时,未经授权的远程攻/击者可通过构造恶意数据包绕过身份认证,导致配置的权限验证失效。

影响版本

​Apache Shiro < 1.9.1​

漏洞原理

根据java正则表达式的特点,在正则表达式中元字符.是匹配除换行符之外的任何单个字符。
新增Pattern.DOTALL模式后,正则表达式.就可以匹配任何字符包括换行符。
在shiro-core-1.9.0.jar中存在一个RegExPatternMatcher类,提供请求路径匹配功能及拦截器参数解析的功能。这个类的Pattern存在带.的正则表达式匹配,如果存在/n或/r字符时,就会判断错误。


环境搭建

直接使用vulfocus的镜像环境

Shiro 身份认证绕过漏洞 CVE-2022-32532_CVE漏洞复现

启动靶场后直接访问给的地址就行

Shiro 身份认证绕过漏洞 CVE-2022-32532_Shiro漏洞_02

Shiro 身份认证绕过漏洞 CVE-2022-32532_Shiro漏洞_03


复现过程

测试直接访问敏感地址访问被拒绝

Shiro 身份认证绕过漏洞 CVE-2022-32532_身份认证绕过漏洞_04

我们抓一下get包,放在Repeater模块

使用%0a进行权限绕过

%0a是换行符

Shiro 身份认证绕过漏洞 CVE-2022-32532_CVE漏洞复现_05

访问成功返回success


修复建议

建议尽快升级至Apache Shiro 1.9.1及以上版本

原文转载自,助安社区


关注公众号【助安社区】安全零基础到入门都在这,社区内部红队沙龙、资源共享和大厂工作经验。真正热爱安全和喜欢技术交流的小伙伴欢迎加入我们。

Shiro 身份认证绕过漏洞 CVE-2022-32532_Shiro漏洞_06