Shiro 认证绕过漏洞 CVE-2020-1957
影响范围
- Apache Shiro 1.0.0-incubating - 1.5.1
漏洞类型
权限绕过
操作系统限制
无
配置要求
- Shiro 拦截器采用了路径匹配模式
漏洞利用
登录管理后台,信息泄露
利用原理
在 Shiro 的 1.5.2 之前的版本中,WebUtils.getPathWithinApplication() 方法处理 URL 时候会根据分号对路径进行截断,会认为分号后面不属于路径一部分;而 Spring 框架在匹配控制器路由时候,会对 URL 进行标准化处理(例如解析穿越符..),它对分号处理方式不同。二者对请求的解析不一样,攻击者通过特殊构造/;/路径来绕过 Shiro 的过滤
漏洞复现
现成的 vulhub 来拉取镜像
1 | #下载vulhub源代码 |

抓取 http://靶机 ip:8080/admin 数据包

发送到 Repeater 模块

直接发送会返回 302 重定向到登录页面

修改路径/;/admin/

发送后返回 200,说明成功绕过登录验证

后续可以直接访问 http://公网: 8080/;/admin/,可以看到绕过了登录

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