首页 > 编程语言 > 详细

【CVE-2020-1957】shiro搭配spring时身份验证绕过漏洞分析

时间:2020-03-26 18:07:19      阅读:805      评论:0      收藏:0      [点我收藏+]

0x00 漏洞简介

https://www.openwall.com/lists/oss-security/2020/03/23/2

技术分享图片

 

0x01 漏洞分析

翻查官方commit,在commit https://github.com/apache/shiro/commit/9762f97926ba99ac0d958e088cae3be8b657948d 中找到相关信息

 技术分享图片

 

 大致理解为Spring web在匹配url的时候会容错后面多余的/,而shiro匹配不上导致绕过,由国人tomsun28提交pull request

 

0x02 漏洞环境搭建

使用springboot+shiro搭建一个简单的demo,代码参考至https://segmentfault.com/a/1190000019440231(使用java原生的整合方式)
其中shiro使用的是1.4.0版本
在shiro-config中配置一个对url "/test/secret"的过滤,此url需要登录才能访问
技术分享图片

 

 同时在LoginController中配置以下代码,用于返回一个需要认证的信息

1 @GetMapping("/test/secret")
2     public String secret(){
3         return "secret";
4     }

直接访问/test/secret,跳转到登录页面

技术分享图片

 

 访问/test/secret/,返回了secret

技术分享图片

 

 

官方修复也很简单就是把url后面的/也考虑进去了再进行匹配
顺便一提,使用maven拉取包的时候发现1.5.1版源码已经修复了,而1.5.0,1.4.2的源码却拉取不到
 
0x03 总结
个人认为此漏洞实际情况较为鸡肋,在身份验证控制的时候应该都是先写不需要登录的,最后来一个全范围匹配,如下:

 技术分享图片

 

这样就不存在这个问题了

本人技术水平有限,如有不妥之处还望谅解

技术分享图片

【CVE-2020-1957】shiro搭配spring时身份验证绕过漏洞分析

原文:https://www.cnblogs.com/r00tuser/p/12575934.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!