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()未指定具体类型的情况和黑名单覆盖范围。
❓
延伸问答
Fastjson反序列化漏洞的主要原因是什么?
Fastjson反序列化漏洞主要源于AutoType机制,攻击者可以通过恶意JSON加载危险类,从而导致任意代码执行。
如何修复Fastjson反序列化漏洞?
修复措施包括升级到安全版本(1.2.83及以上)、关闭AutoType支持和使用安全模式。
在审计Fastjson代码时需要关注哪些关键点?
审计时需关注危险方法调用、AutoType配置及未指定具体类型的JSON.parseObject()调用。
Fastjson反序列化漏洞的攻击步骤是什么?
攻击步骤包括构造恶意JSON、编译恶意类、发送恶意HTTP请求并触发JSON.parseObject()解析。
Fastjson的AutoType机制是如何工作的?
AutoType机制通过@type标识类名,反序列化时尝试实例化指定的类,可能导致加载恶意类。
Fastjson反序列化漏洞的影响有哪些?
该漏洞可能导致任意代码执行,攻击者可以利用它进行远程代码执行等恶意操作。
➡️