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()未指定具体类型的情况和黑名单覆盖范围。
➡️

继续阅读