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

前言

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的镜像环境

image-20230222160039366

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

image-20230222160444747

image-20230222160450931

复现过程

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

image-20230222160528823

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

使用%0a进行权限绕过

%0a是换行符

image-20230222161704254

访问成功返回success

修复建议

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

posted on 2023-03-01 09:50  助安社区  阅读(101)  评论(0编辑  收藏  举报

导航