shiro反序列化漏洞
DeepSeek-R1 回答完成
理解问题
搜索全网36篇资料
Shiro反序列化漏洞利用汇总
-
腾讯云
Apache Shiro反序列化漏洞-Shiro-550复现总结
-
腾讯云
漏洞分析】Shiro RememberMe 1.2.4 反序列化导致的命令执行漏洞
-
www.cloud.tencent.com
CVE重要漏洞复现之Shiro-550反序列化漏洞(网络安全学习)
-
CSDN博客
shiro反序列化漏洞
-
CSDN博客
shiro550反序列化漏洞分析以及攻击手法学习
-
博客园
Apache-Shiro <=1.2.4 反序列化漏洞 (代码审计)
-
博客园
Shiro 反序列化出现漏洞该如何修复? - 知乎
-
知乎
shiro反序列化漏洞原理,如何判断shiro框架?
-
百度教育
【漏洞复现】Shiro 反序列化漏洞_shiro反序列化漏洞-CSDN博客
-
CSDN博客
Shiro反序列化漏洞原理详解及复现
-
黑客入门教程
shiro反序列化漏洞问题详细版(附带最新通告)
-
CSDN博客
shiro反序列化
-
CSDN博客
Shiro RememberMe反序列化导致的RCE实战应用
-
腾讯云
Shiro漏洞CVE总结合集
-
博客园
apache shiro 反序列化漏洞解决方案_shiro修改默认密钥-CSDN博客
-
CSDN博客
shrio反序列漏洞修复_Shiro RememberMe 1.2.4 反序列化漏洞详细复现
-
CSDN博客
碰到shiro反序列化漏洞,大家都是怎么解决的
-
博客园
RuoYi v4.2 Shiro反序列化漏洞
-
繁森凉人
Apache Shiro 550反序列化漏洞复现
-
博客园
JAVA反序列化-shiro550
-
CSDN博客
shiro反序列化漏洞学习(工具+原理+复现)
-
CSDN博客
深入理解Shiro反序列化原理
-
树叶云
Java反序列化(六) | Shiroの起始篇(环境搭建+原理分析)
-
博客园
Shiro反序列化:深入了解与防范措施
-
百度开发者中心
11_Shiro反序列化
-
哔哩哔哩
12_Shiro反序列化漏洞发现和识别
-
哔哩哔哩
Java与Shiro反序列化漏洞,面试必问!
-
清晨去遛狗
Shiro反序列化漏洞分析
-
好多鱼好多余
1.3版本以下存在反序列化漏洞,远程代码执行风险
-
度小视
Shiro反序列化漏洞利用
-
哔哩哔哩
【Java框架审计】Shiro框架550反序列化漏洞分析
-
哔哩哔哩
序列化和反序列化漏洞:危害与防范策略
-
小猪的衣裙
9.Apache Shiro反序列化漏洞
-
哔哩哔哩
2023网络安全面试题 | 奇安信一面:说说Shiro反序列化漏洞的底层原理是什么?
-
哔哩哔哩
第91篇:shiro反序列化漏洞绕waf防护的方法总结(上篇)
-
腾讯云
深度思考完成 用时27秒
嗯,用户询问的是shiro反序列化漏洞,这是个经典的Java安全漏洞问题。从搜索结果看,用户可能是安全研究人员或开发人员,需要全面了解漏洞原理和防护方案。用户没有限定具体方向,所以需要覆盖漏洞机制、利用方式和修复措施等全链条知识。
先看漏洞核心原理。根据多个高可信结果12,本质是RememberMe功能的三层处理流程存在缺陷:序列化后的用户身份数据会经过AES加密和Base64编码存储为Cookie,而服务端解密反序列化时未做过滤。最致命的是早期版本(Shiro<1.2.5)使用硬编码AES密钥616,攻击者可直接构造恶意序列化数据加密后伪造Cookie。
关于漏洞特征,513指出可通过返回包的rememberMe=deleteMe字段初步判断Shiro框架存在,但确认漏洞还需密钥验证。这里注意到19补充了1.4.2版本的分水岭变化——加密模式从AES-CBC改为AES-GCM,这对攻击payload构造有影响。
漏洞利用方面,614详细描述了攻击链:先用默认密钥kPH+bIxk5D2deZiIxcaaaA==加密ysoserial生成的CommonsCollections2 payload,再替换Cookie发送。有趣的是21提到需删除JSESSIONID避免会话干扰,这是个实战细节。
修复方案需要分层说明。首要方案是升级到1.7.1+版本16,因为新版改用动态随机密钥。若因故不能升级,1218建议手动修改密钥并确保长度足够(16字节以上),同时可考虑拦截rememberMe字段或关闭RememberMe功能。
最后补充两个易忽略点:9指出漏洞检测除Cookie特征外,还可通过/login.jsp重定向行为辅助判断;而22强调流量层面识别攻击成功的关键是响应包不存在deleteMe字段且状态码为200。
整体考虑采用分板块结构:先讲漏洞机制突出流程缺陷,再说明危害特征,接着详解利用手法,最后给修复建议。关键数据如默认密钥、影响版本会加粗强调,但避免在代码块内引用角标。
Apache Shiro反序列化漏洞(Shiro-550)是Java安全领域高危漏洞,其原理、利用及修复方案如下:
RememberMe功能缺陷
Shiro提供“记住我”功能,用户登录后生成rememberMe Cookie。服务端处理流程:Cookie值 → Base64解码 → AES解密 → 反序列化。
若AES密钥为默认硬编码值(如kPH+bIxk5D2deZiIxcaaaA==),攻击者可伪造恶意序列化数据触发反序列化漏洞,导致远程代码执行(RCE)12。
漏洞核心原因
硬编码密钥:Shiro ≤1.2.4 版本密钥固定写在源码中16。
无过滤机制:反序列化过程未校验对象合法性,直接执行89。
版本:Apache Shiro ≤1.2.412。
特征:HTTP响应中包含rememberMe=deleteMe字段或Cookie含超长Base64字符串(如rO0AB开头)15。
检测Shiro框架
发送请求包添加rememberMe=1,若响应含Set-Cookie: rememberMe=deleteMe则存在Shiro913。
密钥爆破与Payload构造
使用工具(如Shiro_exploit)爆破密钥120。
利用ysoserial生成反序列化Payload(常用链:CommonsCollections2),按以下流程加密伪造Cookie:
textCopy Code恶意命令 → 序列化 → AES加密 → Base64编码 → 替换Cookie中的rememberMe字段
``` :ml-citation{ref="6,14" data="citationList"}。发送攻击请求
删除JSESSIONID避免会话干扰,发送伪造的Cookie触发漏洞614。
升级Shiro版本
升级至 ≥1.7.1,新版本默认动态生成随机密钥1618。
xmlCopy Code<dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.7.1</version></dependency>
手动配置强密钥
若无法升级,在配置文件中设置自定义密钥(长度≥16字节)并确保保密:
javaCopy Code@Beanpublic CookieRememberMeManager rememberMeManager() { CookieRememberMeManager manager = new CookieRememberMeManager();
manager.setCipherKey(Base64.decode("自定义强密钥(非公开)")); return manager;
}
``` :ml-citation{ref="12,16" data="citationList"}。关闭RememberMe功能
非必要场景下,在配置中禁用此功能18。
加固措施
部署WAF拦截异常rememberMe请求。
限制同一IP高频访问敏感路径58。
Shiro-721漏洞:Shiro ≤1.4.2 存在Padding Oracle攻击风险,需升级至 ≥1.4.2(使用AES-GCM模式)1119。
流量监控:监控携带超长rememberMe Cookie的非浏览器请求(异常User-Agent)513。
注:修复后需全面测试业务兼容性,避免影响正常登录流程1618。