Java漏洞在白盒审计中的技巧——反序列化篇(Fastjson)
💡
原文中文,约5800字,阅读约需14分钟。
📝
内容提要
Fastjson反序列化漏洞源于AutoType机制,攻击者可通过恶意JSON加载危险类,导致任意代码执行。此漏洞存在于1.2.24及之前版本,后续版本已加强安全防护。修复措施包括升级到安全版本、关闭AutoType和使用安全模式。审计时需关注危险方法调用及AutoType配置。
🎯
关键要点
- Fastjson反序列化漏洞源于AutoType机制,攻击者可通过恶意JSON加载危险类,导致任意代码执行。
- 漏洞存在于1.2.24及之前版本,后续版本已加强安全防护。
- 修复措施包括升级到安全版本、关闭AutoType和使用安全模式。
- 审计时需关注危险方法调用及AutoType配置。
- 攻击者通过@type指定恶意类,利用JSON.parseObject()触发漏洞。
- 构造恶意JSON时需包含恶意类的字节码和相关属性。
- 审计Fastjson代码时需关注危险方法调用和AutoType相关配置。
- 基础修复措施包括升级到安全版本、关闭AutoType和使用安全模式。
- 安全编码规范要求反序列化时指定具体类型,避免反序列化接口或抽象类。
- 实际攻击中需构造利用链,常见的有JdbcRowSetImpl和TemplatesImpl。
- Fastjson反序列化漏洞的核心在于AutoType机制和危险类的链式调用。
- 在审计时需关注JSON.parseObject()未指定具体类型的情况和黑名单覆盖范围。
➡️