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

279 阅读2分钟

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

前言

Apache Shiro 是一个强大且易用的 Java 安全框架,通过它可以执行身份验证、授权、密码和会话管理。使用 Shiro 的易用 API,您可以快速、轻松地保护任何应用程序 —— 从最小的移动应用程序到最大的 WEB 和企业应用程序。

2022629日,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及以上版本

原文转载自,助安社区(secself.com/)

关注公众号【助安社区】渗透零基础到入门都在这,社区内部红队沙龙、资源共享和大厂工作经验。真正热爱安全和喜欢技术交流的小伙伴欢迎加入我们。

声明

本公众号的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。