Shiro550反序列化漏洞原理与复现
原创
予辉安全
予辉安全
予辉安全
2026年8月21日 18:00
河北
在小说阅读器读本章
去阅读
-漏洞原理-
1、什么是Shiro?
Apache Shiro是一个强大且易用的Java安全框架,用于执行身份验证、授权、密码和会话管理。使用Shiro易于理解的API,可以快速轻松地对应用程序进行保护。
2、RememberMe机制的安全隐患
在Shiro框架中,执行身份验证时提供了一个\"记住密码\"的功能(RememberMe)。如果用户登录时勾选了这个选项,用户的请求数据包中将会在Cookie字段多出一段数据,这段数据包含了用户的身份信息,且经过加密。
3、加密流程:
用户信息 → 序列化 → AES加密(使用密钥key)→ Base64编码 → 添加到RememberMe Cookie
4、服务端验证流程:
取出Cookie中的rememberMe值 → Base64解码 → AES解密(使用密钥key)→ 反序列化
5、关键问题:
AES是一种对称加密算法,加解密使用相同的密钥。在Shiro版本≤1.2.24中,使用了固定的密钥:
kPH+bIxk5D2deZiIxcaaaA==
这意味着攻击者可以直接用这个密钥,自行构造恶意序列化数据,放入Cookie中发送给服务端。服务端解密后执行反序列化,就会触发恶意代码。
-影响版本-
| 版本线 | 受影响范围 |
|---|---|
| Apache Shiro | ≤ 1.2.24 |
-漏洞复现-
1、靶场搭建
使用Vulhub或者现在靶场
cd /path/to/vulhub/shiro/CVE-2016-4437docker-compose up -d
https://hackhub.get-shell.com/
2、shiro框架判断
登录时勾选\"Remember Me\"选项,抓包观察:
- 请求包中是否出现
rememberMe字段 - 响应包中是否出现
Set-Cookie: rememberMe=deleteMe字段
注意:出现rememberMe=deleteMe只能说明页面使用了Shiro进行身份验证,并不能直接证明存在漏洞。漏洞的核心在于能否获得AES加密密钥。
3、使用工具验证
打开shiro\_attack-4.7.0-SNAPSHOT-all.jar一次爆破密钥和利用链
-工具获取-
后台回复:20260821
End
文章都看完了,还不点个赞
回顾往期内容
CVE-2025-24813丨Tomcat远程代码执行漏洞复现
LeakDetector丨基于Bing Dork的自动化信息泄露侦察工具
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论