CVE-2022-32532 Apache Shiro RegExPatternMatcher 认证绕过漏洞分析与复现

渗透技巧 2年前 (2022) admin
1,159 0 0

★且听安全-点关注,不迷路!



CVE-2022-32532 Apache Shiro RegExPatternMatcher 认证绕过漏洞分析与复现

★漏洞空间站-优质漏洞资源和小伙伴聚集地!



文章来自漏洞空间站入圈小伙伴嘟嘟玛卡-HCyber。


漏洞信息


2022 年 6月 28 日监测到 Apache 发布了公告,修复了 Apache Shiro 框架中的一个认证绕过漏洞 CVE-2022-32532 。通过分析发现这个漏洞和之前公众号发表的 Spring Security 认证绕过漏洞 CVE-2022-22978 本质上是一样的:


CVE-2022-22978 Spring Security RegexRequestMatcher 认证绕过漏洞与利用场景分析

QCyber,公众号:且听安全CVE-2022-22978 Spring Security RegexRequestMatcher 认证绕过漏洞与利用场景分析


当使用 `RegexRequestMatcher` 进行认证配置时,可以通过构造特殊请求绕过正则表达式检查,从而实现认证绕过。


漏洞分析与复现


直接引入漏洞报送者 4ra1n 师傅的 github 。该漏洞环境中配置了自定义的 `AccessControlFilter` 实现类,并将 `PatternMatcher` 配置为了 `RegExPatternMatcher` :


CVE-2022-32532 Apache Shiro RegExPatternMatcher 认证绕过漏洞分析与复现


`RegExPatternMatcher` 的具体实现是使用 `Pattern.compile(pattern)` 进行正则匹配:


CVE-2022-32532 Apache Shiro RegExPatternMatcher 认证绕过漏洞分析与复现


然后将自定义的实现类配置中 `SpringShiroFilter` 中:


CVE-2022-32532 Apache Shiro RegExPatternMatcher 认证绕过漏洞分析与复现


当访问 `/permit/any`,是需要认证的:


CVE-2022-32532 Apache Shiro RegExPatternMatcher 认证绕过漏洞分析与复现


CVE-2022-32532 Apache Shiro RegExPatternMatcher 认证绕过漏洞分析与复现


当构造请求 `/permit/a%0any`,可以绕过正则匹配,从而实现认证绕过( `r` 的 URL 编码为 `%0d` , `n` 的 URL 编码为 `%0a` ):


CVE-2022-32532 Apache Shiro RegExPatternMatcher 认证绕过漏洞分析与复现


CVE-2022-32532 Apache Shiro RegExPatternMatcher 认证绕过漏洞分析与复现


修复方式


补丁对比:


CVE-2022-32532 Apache Shiro RegExPatternMatcher 认证绕过漏洞分析与复现


和 CVE-2022-22978 修复方式一样,新增了 `Pattern.DOTALL` ,默认情况下正则表达式 `.` 不会匹配换行符,设置了 `Pattern.DOTALL` 模式,才会匹配所有字符包括换行符。



由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用本人负责,且听安全及文章作者不为此承担任何责任。



★且听安全-点关注,不迷路!

CVE-2022-32532 Apache Shiro RegExPatternMatcher 认证绕过漏洞分析与复现



★漏洞空间站-优质漏洞资源和小伙伴聚集地!

CVE-2022-32532 Apache Shiro RegExPatternMatcher 认证绕过漏洞分析与复现

原文始发于微信公众号(且听安全):CVE-2022-32532 Apache Shiro RegExPatternMatcher 认证绕过漏洞分析与复现

版权声明:admin 发表于 2022年6月30日 上午7:25。
转载请注明:CVE-2022-32532 Apache Shiro RegExPatternMatcher 认证绕过漏洞分析与复现 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...