Spring Security 认证绕过漏洞 CVE-2022-22978
影响范围
- 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 来拉取镜像
1 | #下载vulhub源代码 |

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

发送到 Repeater 模块

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

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

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Johan的秘密小窝!
评论