跳转至

Fastjson 1.2.47反序列化漏洞

漏洞描述

Fastjson提供了autotype功能,允许用户在反序列化数据中通过“@type”指定反序列化的类型,Fastjson自定义的反序列化机制时会调用指定类中的setter方法及部分getter方法,那么当组件开启了autotype功能并且反序列化不可信数据时,攻击者可以构造数据,使目标应用的代码执行流程进入特定类的特定setter或者getter方法中,若指定类的指定方法中有可被恶意利用的逻辑(也就是通常所指的“Gadget”),则会造成一些严重的安全问题。并且在Fastjson 1.2.47及以下版本中,利用其缓存机制可实现对未开启autotype功能的绕过

影响版本

  • Fastjson<=1.2.47

环境配置

使用vulhub环境,docker-compose启动

Bash
docker-compose up -d

image-20250606164432040

漏洞复现

判断漏洞存在性

修改请求为POST,修改 Content-Type为: application/json

image-20250606165018335

根据报错回显fastjson判断使用了fastjson

漏洞原理

Java中Fastjson各版本漏洞对抗史与总结-先知社区

修复建议