前言
Apache Shiro 身份验证绕过漏洞 (CVE-2020-11989)
Shiro这个框架,我相信各位经常挖洞的师傅都不会陌生,因为这个框架有着臭名昭著的反序列化漏洞(CVE-2016-4437),攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。
但是,今天我们要讲的是Shiro身份验证绕过漏洞,这个漏洞已经出来大半年了,只是之前一直觉得作用并不明显(这是因为自己太菜了),最近正好遇到一次,遂之记录一下(开学前的最后一篇,开学后估计没时间更新了,大家看我名字应该知道了)。
0x00漏洞详情
ApacheShiro是一个强大且易用的Java安全框架,它可以用来执行身份验证、授权、密码和会话管理。目前常见集成于各种应用中进行身份验证,授权等。在Apache Shiro 1.5.3之前的版本,将Apache Shiro与Spring控制器一起使用时,特制请求可能会导致身份验证绕过。
关键字:身份验证、Apache Shiro 1.5.3、Spring控制器
0x01漏洞影响范围
- Apache Shiro < 1.5.3
- Spring 框架中只使用 Shiro 鉴权
0x02漏洞分析
想深入的同学,可以看看以下文章
- Apache Shiro权限绕过漏洞分析(CVE-2020-11989)
0x03漏洞实战
当我们在进行渗透时,若是遇到了shiro站,但站点已经将反序列化漏洞修复的时候,不妨试一试shiro权限绕过,有时是会有惊喜的!
在挖洞的过程中,看到了我的burp发出警报,看了一眼,发现原来是Shiro框架。 (后来瞄了一下这个页面,熟悉感扑面而来。)
测试了一波弱口令但没有成功之后,立马掏出我珍藏已久的Shiro反序列化利用工具梭哈一波!
很遗憾,Shiro反序列化漏洞已经修复了,难道我就要败在这里了吗?? 突然想起了之前的Shiro权限绕过这个漏洞,于是查阅资料,复现一波
在Shiro框架的网站后面拼接/;/查看页面是否正常 这里我们拼接到刚刚的网站上
代码语言:javascript复制http://xxxxxx.com/;/login
查看网页是否正常
好家伙,页面正常回显,并且连验证码都不需要了。
这时候,一个疑问出现了,虽然Shiro权限绕过成功复现了,但是如何利用这个权限绕过打开局面呢?
一个思路突然出现了,我们可以利用fofa搜寻同样类型站点,利用弱口令进入同类型的站点后台,收集一波后台各种接口的URL,利用Shiro权限绕过的漏洞,将这些URL拼接在目标站点,达到未授权访问的目的!
说干就干,利用弱口令进入了一个同类型的站点后台,收集到了一波接口的URL。
接下来就要拼接到目标站点了。
代码语言:javascript复制http://xxxxxx.com/;/xxxxx/xxxx/xxxx
成功访问到这些敏感的功能点了。