★且听安全★-点关注,不迷路!
★漏洞空间站★-优质漏洞资源和小伙伴聚集地!
文章来自漏洞空间站入圈小伙伴嘟嘟玛卡-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` :
`RegExPatternMatcher` 的具体实现是使用 `Pattern.compile(pattern)` 进行正则匹配:
然后将自定义的实现类配置中 `SpringShiroFilter` 中:
当访问 `/permit/any`,是需要认证的:
当构造请求 `/permit/a%0any`,可以绕过正则匹配,从而实现认证绕过( `r` 的 URL 编码为 `%0d` , `n` 的 URL 编码为 `%0a` ):
补丁对比:
和 CVE-2022-22978 修复方式一样,新增了 `Pattern.DOTALL` ,默认情况下正则表达式 `.` 不会匹配换行符,设置了 `Pattern.DOTALL` 模式,才会匹配所有字符包括换行符。
由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用本人负责,且听安全及文章作者不为此承担任何责任。
★且听安全★-点关注,不迷路!
★漏洞空间站★-优质漏洞资源和小伙伴聚集地!
原文始发于微信公众号(且听安全):CVE-2022-32532 Apache Shiro RegExPatternMatcher 认证绕过漏洞分析与复现