影响范围:

  • Spring Security 5.5.0 - 5.5.6

  • Spring Security 5.6.0 - 5.6.3

  • 以及更早的停止维护版本。

漏洞类型:

权限绕过

操作系统限制:

配置要求:

  • Spring Security默认使用AntPathRequestMatcher

  • 正则表达式使用了点号(.)通配符

  • 未显式设置caseInsensitive或DOTALL参数

漏洞利用:

越权获取敏感信息

利用原理:

RegexRequestMatcher(正则匹配器)初始化未开启DOTALL模式(开启后点号匹配范围扩大,可以匹配包括换行符在内的所以字符),安全框架用正则匹配路径,由于.无法识别%0a,导致正则引擎判定匹配失败,即认为加入%0a不属于受保护的范围,绕过了权限检验,从而能够访问敏感业务信息

漏洞复现:

用现成的vulhub来拉取镜像

#下载vulhub源代码
git clone https://github.com/vulhub/vulhub.git
#进入漏洞目录
cd vulhub/spring/CVE-2022-22978
#拉取镜像
docker-compose up -d

用burpsuite抓http://公网:8080数据包

发送到Repeater模块

修改路径/admin,访问admin页面,返回404,确认有防护

修改路径/admin/%0a,返回200,成功绕过认证访问受保护资源


文章作者: Johan
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Johan的秘密小窝
CVE Spring
喜欢就支持一下吧