shiro反序列化漏洞

Shiro简介

Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。

目前为止,shiro反序列漏洞,目前公开的就两种:
1、shiro-550,编号:CVE-2016-4437
2、shiro-721,编号:CVE-2019-12422

Shiro-550 CVE-2016-4437

影响版本:Apache Shiro < 1.2.4
特征判断:
登录界面有remember me的功能
返回包中包含rememberMe=deleteMe字段。
获取正确的key:
可以尝试构造好一个包含用户凭证组信息的伪造rememberMe的值,然后经过AES加密后进行请求。经过一系列的解码解密操作后,若此时返回包不返回Set-Cookie: rememberMe=deleteMe,说明当前的key是正确的,如果没返回就把JSESSIONID删掉。可以以此作为判断标准,使用不同密钥对这串序列化数据进行加密并发包,即可快速爆破获取到Shiro加密密钥。注意:在1.2.4版本之后官方就采用自定义key和随机key了,所以爆破这个方法在1.2.4之后可能就有点费劲。
防御措施
升级Shiro到最新版本
WAF拦截Cookie中长度过大的rememberMe值

Shiro-721 CVE-2019-12422

漏洞编号:CVE-2019-12422
影响版本:Apache Shiro < 1.4.2
特征判断:
这个和shiro-550差不多,但是他们不同点在于550漏洞并不需要登录成功就可爆破key,但是721需要登录成功才可以(这个面试官常考点)
防御措施
升级Shiro到最新版本
WAF拦截Cookie中长度过大的rememberMe值

靶场测试

1、启动靶场(https://vulhub.org/#/environments/shiro/CVE-2016-4437/)


现在靶场跑起来了,针对于shiro反序列化是有工具的,如果你说:切,脚本小子。那你就先去写把poc写好,写好了发我用用。(工具:[https://m.tb.cn/h.57YwHxu?tk=1ftBW1csEqZ CZ3457](https://m.tb.cn/h.57YwHxu?tk=1ftBW1csEqZ CZ3457)
点击链接直接打开)
2、先按照正常流程查看特征

点击登录,返回burp,找到登录包

发送到重放器(repaeter)

这就是特征了
3、然后我们使用shiro反序列化工具


直接来功能区,测试一下。


一键写入内存马,直接用蚁剑就可以连接了
shiro550就是这样了,如果是721是需要登录成功的,其他也没什么了

请勿转载,反正我缺钱,转载我就遇贵人了

posted on 2023-10-21 01:56  狐小妖  阅读(216)  评论(0编辑  收藏  举报