真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析

本篇文章為大家展示了怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

公司專(zhuān)注于為企業(yè)提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、微信公眾號(hào)開(kāi)發(fā)、商城系統(tǒng)網(wǎng)站開(kāi)發(fā),重慶小程序開(kāi)發(fā),軟件按需求定制開(kāi)發(fā)等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。憑借多年豐富的經(jīng)驗(yàn),我們會(huì)仔細(xì)了解各客戶(hù)的需求而做出多方面的分析、設(shè)計(jì)、整合,為客戶(hù)設(shè)計(jì)出具風(fēng)格及創(chuàng)意性的商業(yè)解決方案,創(chuàng)新互聯(lián)建站更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務(wù)。

前言

遲到的Fastjson反序列化漏洞分析,按照國(guó)際慣例這次依舊沒(méi)有放poc。道理還是那個(gè)道理,但利用方式多種多樣。除了之前放出來(lái)用于文件讀寫(xiě)的利用方式以外其實(shí)還可以用于SSRF。

一、漏洞概述

在之前其他大佬文章中,我們可以看到的利用方式為通過(guò)清空指定文件向指定文件寫(xiě)入指定內(nèi)容(用到第三方庫(kù))。當(dāng)gadget是繼承的第一個(gè)類(lèi)的子類(lèi)的時(shí)候,滿足攻擊fastjson的條件。此時(shí)尋找到的需要gadget滿足能利用期望類(lèi)繞過(guò)checkAutoType。

下面分析了一種利用反序列化指向fastjson自帶類(lèi)進(jìn)行攻擊利用,可實(shí)現(xiàn)文件讀取、SSRF攻擊等。

二、調(diào)試分析

1. 漏洞調(diào)試

從更新的補(bǔ)丁中可以看到expectClass類(lèi)新增了三個(gè)方法分別為:

java.lang.Runnable、java.lang.Readable、java.lang.AutoCloseable

首先,parseObject方法對(duì)傳入的數(shù)據(jù)進(jìn)行處理。通過(guò)詞法解析得到類(lèi)型名稱(chēng),如果不是數(shù)字則開(kāi)始checkAutoType檢查。

怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析

當(dāng)傳入的數(shù)據(jù)不是數(shù)字的時(shí)候,默認(rèn)設(shè)置期望類(lèi)為空,進(jìn)入checkAutoType進(jìn)行檢查傳入的類(lèi)。

怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析

判斷期望類(lèi),此時(shí)期望類(lèi)為null。往下走的代碼中,autoCloseable 滿足不在白名單內(nèi),不在黑名單內(nèi),autoTypeSupport沒(méi)有開(kāi)啟,expectClassFlag為false。

其中:

A.計(jì)算哈希值進(jìn)行內(nèi)部白名單校驗(yàn)

B.計(jì)算哈希值進(jìn)行黑名單校驗(yàn)

C.非內(nèi)部白名單且開(kāi)啟autoTypeSupport或者是期望類(lèi)的,進(jìn)行hash校驗(yàn)白名單acceptHashCodes、黑名單denyHashCodes。如果在acceptHashCodes內(nèi)則進(jìn)行加載( defaultClassLoader),在黑名單內(nèi)則拋出 autoType is not support。

怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析滿足條件C后來(lái)到clazz的賦值,解析來(lái)的代碼中對(duì)clazz進(jìn)行了各種判斷。

從明文緩存中取出autoCloseable賦值給 clazz。

怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析當(dāng)clazz不為空時(shí),expectClassFlag為空不滿足條件,返回clazz,至此,第一次的checkAutoType檢查完畢。

怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析

將檢查完畢的autoCloseable進(jìn)行反序列化,該類(lèi)使用的是JavaBeanDeserializer反序列化器,從MapDeserializer中繼承。

怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析

怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析

JSON.DEFAULT_TYPE_KEY 為@type ,并給它賦值傳入的key @type ,將第二個(gè)類(lèi)也就是這次 的gadget傳入。

怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析

期望類(lèi)在這里發(fā)生了變化,expectClass的值變?yōu)閖ava.lang.AutoCloseable,typeName為gadget,

怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析

來(lái)到JSONType注解,取typename gadget轉(zhuǎn)換變?yōu)槁窂?,resource通過(guò)將 “.” 替換為”/“得到路徑 。其實(shí)已經(jīng)開(kāi)始讀取gadget了,它本意應(yīng)該是加載AutoCloseable。

怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析

可以看到這里有讀取文件的功能。

怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析

怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析

isAssignableFrom()這個(gè)方法用于判斷里面的類(lèi)是否為繼承類(lèi),當(dāng)利用了java.lang.AutoCloseable這個(gè)方法去攻擊fastjson,那么后續(xù)反序列化的鏈路一定是要繼承于該類(lèi)的子類(lèi)。

TypeUtils.addMapping(typeName, clazz)這一步成功把gadget加入緩存中并返回被賦值gadget的clazz.

怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析checkAutoType正式檢查完畢,此時(shí)用deserializer = parser.getConfig().getDeserializer(userType); userType既gadget進(jìn)行反序列化。

怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析

進(jìn)入coreConnect()

怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析

怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析

在這里進(jìn)行連接。找到合適并且可利用的常用jar包中的gadget。gadget在被反序列化后即可執(zhí)行類(lèi)里的惡意的功能(不僅限于RCE還包括任意文件讀取/創(chuàng)建,SSRF等)。也可以使本漏洞得到最大化的利用。

至此漏洞利用完結(jié)。

上述內(nèi)容就是怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


新聞名稱(chēng):怎么實(shí)現(xiàn)Fastjson小于1.2.68版本反序列化漏洞分析
文章URL:http://weahome.cn/article/jpgjih.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部