CVE-2022-22978 Spring-security 身份验证绕过

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


漏洞描述

Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。

当Spring-security使用 RegexRequestMatcher 进行权限配置,由于RegexRequestMatcher正则表达式配置权限的特性,正则表达式中包含“.”时,未经身份验证,攻击者可以通过构造恶意数据包绕过身份认证。

影响版本

Spring Security 5.5.x < 5.5.7
Spring Security 5.6.x < 5.6.4
以及其它不受支持的旧版本。

漏洞复现

首页
在这里插入图片描述

点击admin,因身份认证问题被拦截

在这里插入图片描述

漏洞产生的原因是由于正则发生了问题,可以通过在 URL 中加入换行符( rn )来绕过。(\r的url编码为%0d,\n的url编码为%0a)。

未授权的路径后添加 %0d、%0a 、%0a%0d ,即可绕过访问权限检测。

/admin/1%0d
/admin/1%0a
/admin/1%0d%0a

在这里插入图片描述

漏洞原理

HTTP请求中url中的%0d、%0a,经过WEB服务器 转码成 换行符\r 和 回车符\n 传送给后端程序。

程序在处理该路径的访问请求时,会利用正则规则匹配该路径是否为管理员路径,如果是则对其进行身份校验,校验通过后,返回管理端数据,但是如果正则规则未匹配到该路径,则直接绕过身份校验模块。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值