CVE-2022-32532 Apache Shiro RegExPatternMatcher 认证绕过漏洞分析与复现
2022-6-29 20:22:25 Author: mp.weixin.qq.com(查看原文) 阅读量:15 收藏

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

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

文章来自漏洞空间站入圈小伙伴嘟嘟玛卡-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` 模式,才会匹配所有字符包括换行符。

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

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

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


文章来源: https://mp.weixin.qq.com/s?__biz=Mzg3MTU0MjkwNw==&mid=2247490845&idx=1&sn=ea2d9ff894bc648fbb2a08522c3120d8&chksm=cefda409f98a2d1fa42c7c21b174cc79013c388b490105c08fb48d26a41b05dca0e417a6e7ff&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh