0x00 前言
同CVE-2020-1957,补充一下笔记,在CVE-2020-1957的基础上进行了绕过。
影响版本:Apache Shiro < 1.6.0
环境搭建参考:shiro CVE-2020-1957
0x01 漏洞复现
CVE-2020-13933中使用%3b绕过了shiro /*的检测方式,同样是利用了spring和shiro的解析差异
0x02 漏洞分析
1.shiro
可以先看shiro CVE-2020-1957
在这里的url处理中,会将%3b解析成;
,但是如果是明文的话,会直接进行截断。
经过解码之后的url,如下图所示:
在decodeAndCleanUriString中将;进行切分
得到url为:
去除\
那么最终进行权限校验的url为:/hello,如此即可绕过shiro的权限防护
2.Spring
在Spring中会将%3ba作为一整个参数进行解析,硬要说的话就是可以通过%3b绕过removeSemicolonContentInternal的检测
0x03 漏洞修复
新增类,对特殊字符进行过滤
默认多加了/**,避免匹配不到的问题
修复后测试