shiro反序列化漏洞学习

2025-03-03 25 0

由于利用工具以及很成熟了,就不进行复现了。本文只探讨漏洞原理。个人见解。

低版本shiro550

手动判断是否存在shiro组件的方法

1,未登录的情况下,请求包的cookie中没有rememberMe字段,返回包set-Cookie里也没有deleteMe字段
2,登录失败的话,不管有没有勾选RememberMe字段,返回包都会有rememberMe=deleteMe字段
3,不勾选RememberMe,登录成功的话,返回包set-Cookie里有rememberMe=deleteMe字段。但是之后的所有请求中Cookie都不会有RememberMe字段
4,勾选RememberMe,登录成功的话,返回包set-Cookie里有rememberMe=deleteMe字段,还会有remember字段,之后的所有请求中Cookie都会有rememberMe字段
5,或者可L以在cookie后面自己加一个rememberMe=1.看返回包有没有rememberMe=deleteMe

我们首先要搞明白Shiro的RememberMe机制的流程,是如何实现用户通过Cookie(rememberMe字段)实现无状态会话保持的。

客户端请求 → 生成序列化用户信息 → AES加密 → Base64编码 → Cookie返回

客户端携带Cookie → Base64解码 → AES解密 → 反序列化恢复会话

漏洞根源就是加密cookie的硬编码密钥泄露,反序列化无校验:解密后的数据直接通过ObjectInputStream反序列化,未进行类白名单过滤。

获取到密钥之后就可以根据不同环境选择合适的利用链。有了key和链,就可以开始利用

序列化恶意对象 → AES-CBC加密 → Base64编码 → 设置Cookie头;

我们构造好payload然后进行AES加密,base64编码后,设置在cookie部分,发送恶意Cookie至目标登录接口,触发反序列化执行任意代码。(可以使用ysoserial工具进行序列化对象)

服务端接收到cookie后的处理过程

1. **Cookie解析**:Shiro从请求头提取`rememberMe`字段值。

2. **Base64解码**:将字符串解码为二进制数据。

3. **AES解密**:使用默认或自定义密钥解密得到原始序列化数据。

4. **反序列化触发**:

- 调用`ObjectInputStream.readObject()` 还原对象。

- 通过Gadget链反射调用危险方法(如`Runtime.exec()` )。

高版本shiro721

721的漏洞根源是AES-CBC加密模式中Padding校验机制缺陷,可以通过错误回显爆破加密密钥。

也就是密钥可爆破(佳都),或者获得已登录的cookie逆过程来构造payload

(偷一个图)

shiro反序列化漏洞学习插图

已知Cookie的利用价值
  • 关键信息获取
    有效Cookie(rememberMe=Base64(AES-CBC(序列化用户数据)))提供以下信息:
    • 加密块对齐方式:通过Base64解码后的长度推断分块模式。
    • 合法明文结构:用户数据序列化后的字节特征(如类名、字段长度)。
  • 攻击方法
    基于合法Cookie的已知明文-密文对,可跳过部分Padding爆破步骤,直接构造恶意Payload。

开始复现

环境搭建

git clone https://github.com/inspiringz/Shiro-721.git
cd Shiro-721/Docker
docker build -t shiro-721 .
docker run -p 8080:8080 -d shiro-721h

或者直接使用vulfocus在线靶场


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

XSS 漏洞深度解析:攻防对抗与高阶利用
本地密码管理工具——python
小白首选最新版VMware Workstation Pro详细下载和安装教程
代码审计——SpringBoot SpEL 表达式注入漏洞
Zyxel Telnet 漏洞分析(CVE-2025-0890、CVE‑2024‑40891)
CISA警告VMware漏洞正遭积极利用,敦促企业立即修补

发布评论