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

漏洞描述

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

简介一下:Apache Shiro 是一个功能强大且易于使用的 Java 安全框架,它可以执行身份验证、授权、加密和会话管理,可以用于保护任何应用程序——从命令行应用程序、移动应用程序到最大的 web 和企业应用程序。

利用范围

Apache Shiro < 1.9.1

漏洞检测

在config\pom.xml的version标签中查看当前使用的shiro版本号

漏洞原理

在正则表达式中元字符.是匹配除换行符(\n\r)之外的任何单个字符。

要匹配包括 \n 在内的任何字符,需使用像(.|\n)的模式。

在java中的正则默认情况下.也同样不会包含\n、\r字符,因此在一些场景中,使用正则.的规则就有可能被绕过。

新增Pattern.DOTALL模式后,正则表达式.就可以匹配任何字符包括换行符。

在shiro-core-1.9.0.jar中存在一个RegExPatternMatcher类,提供请求路径匹配功能及拦截器参数解析的功能。pattern存在带.的正则表达式匹配,若source中存在\r或\n字符时,将判断错误。

漏洞复现

/premit/any,返回拒绝访问。

CVE-2022-32532 Apache Shiro RegExPatternMatcher 认证绕过漏洞复现_第1张图片

 /premit/a%0any

CVE-2022-32532 Apache Shiro RegExPatternMatcher 认证绕过漏洞复现_第2张图片

 所以在如上满足使用了RegExPatternMatcher类,设置带有.的正则表达式等条件的场景下,利用该漏洞可实现权限认证绕过。

你可能感兴趣的:(大数据)