Black2025-JDD Hessian反序列化链
字数 1271 2025-11-05 23:45:18
Black2025-JDD Hessian反序列化链技术分析文档
概述
Black2025-JDD Hessian反序列化链是一个重要的安全研究突破,其核心价值在于发现了一个原生通过getter方法执行命令的sink点。该漏洞虽然最初以Hessian2反序列化的形式展示,但其利用原理具有通用性,可能带来多种绕过方式。
技术细节分析
1. Sink点分析
关键调用链:
com.sun.corba.se.impl.activation.ServerManagerImpl#getActiveServers
↓
调用ServerTableEntry的isValid方法
↓
调用activate方法
↓
实现命令执行
详细分析:
- 入口点:
ServerManagerImpl.getActiveServers()方法 - 调用链传递:该方法内部调用
ServerTableEntry.isValid() - 关键执行点:
isValid()方法进一步调用activate()方法 - 命令执行:
activate()方法内部包含可执行系统命令的代码逻辑
2. 触发机制
2.1 Getter方法触发
该sink点的特殊性在于通过getter方法触发命令执行,这使得它在多种反序列化场景下都具有可利用性:
- Fastjson反序列化:自动调用getter方法
- Jackson反序列化:默认配置下会调用getter方法
- 其他JSON库:具有类似行为的反序列化器
2.2 toString方法触发
除了直接的getter调用,还可以通过触发toString()方法间接实现利用:
已知可利用的toString触发点:
AudioFileFormat$Typejavax.sound.sampled.AudioFormat$EncodingXStringXStringForCharsXStringForFSB
3. Spring原生反序列化利用
该链子的一个重要拓展是可用于Spring原生反序列化攻击,为Spring应用安全带来了新的威胁向量。
利用特点:
- 无需依赖特定的JSON库
- 直接利用Spring框架的反序列化机制
- 构造相对简单,利用成功率高
4. 技术价值
4.1 创新性贡献
- 发现新的sink点:
ServerManagerImpl类之前未被广泛关注 - 通用性利用:不局限于Hessian2,适用于多种反序列化场景
- Spring安全拓展:为Spring应用安全研究提供了新的方向
4.2 实际影响
- 绕过能力:可能绕过现有的某些安全防护措施
- 攻击面扩大:增加了反序列化攻击的成功率
- 检测难度:传统的反序列化检测规则可能无法有效识别
5. 防护建议
5.1 开发层面
// 建议的防护措施:
1. 限制反序列化类的白名单
2. 使用安全的反序列化库
3. 对输入数据进行严格验证
5.2 运维层面
- 及时更新相关组件补丁
- 部署WAF等防护设备
- 监控异常反序列化行为
总结
Black2025-JDD Hessian反序列化链的发现具有重要的安全意义:
- 技术深度:揭示了通过getter方法实现命令执行的新途径
- 利用广泛性:不仅限于Hessian2,适用于多种反序列化场景
- 实战价值:为红队测试提供了新的攻击向量
- 防御挑战:对现有的安全防护体系提出了新的要求
该研究提醒安全社区需要持续关注反序列化安全问题,并不断更新防护策略以应对新型攻击手法。