cve-2014-0569 漏洞利用分析

wyzsk發表於2020-08-19
作者: 綠盟科技 · 2014/11/26 10:09

0×00 簡述


來自CVE的漏洞描述:

enter image description here

測試環境: Win7 SP1 + Flash ActiveX 15.0.0.167

0×01 漏洞利用分析


介紹有關漏洞關鍵程式碼前,先看一下heap spray後的記憶體佈局:

enter image description here

簡單描述為:

enter image description here

漏洞致使Uint Vector的length欄位被改寫。

漏洞關鍵程式碼:

enter image description here

紅線標註的部分其操作流程:

取預定大小0×1000的ByteArray物件_loc3,賦值給domainMemory,以便casi32函式操作此記憶體

預置大小0×1000的ByteArray物件:

enter image description here

透過函式atomicCompareAndSwapLength將_loc3長度置0

casi32函式內由於整數溢位造成執行流改變,致使向_loc3偏移0×1000處成功寫入0×40000001

上述過程細節:

enter image description here

enter image description here

enter image description here

enter image description here

這樣就可以以超長的Uint Vector為起點,讀取預置的物件資料。

利用關鍵點:

搜尋預置的sound物件進而計算出flash控制元件基址

預置的sound物件包含於噴射的少量Vector Object裡,這裡稱之為vec_3。

具體的噴射程式碼:

enter image description here

透過特徵比對遍歷以獲取vec_3中元素:

enter image description here

搜尋到的其中一項:

計算flash控制元件基址:

enter image description here

在flash控制元件基址基礎上獲取rop鏈所需指令,用VirtualAlloc分配可執行記憶體過DEP。

enter image description here

enter image description here

構造rop鏈(部分):

enter image description here

修改sound物件虛表指標,並呼叫修改後的虛表函式將執行流導向stack pivot。

enter image description here

sound物件虛表指標修改前後:

enter image description here

enter image description here

修改後的虛表指標指向內容:

enter image description here

呼叫虛擬函式觸發利用。

enter image description here

0×02 分析總結


完整的利用至少由兩部分組成(html + swf),其中swf並不能獨立執行,需要html傳入的引數(shellcode),只拿到swf並不能獲知攻擊者的意圖。

0×03 參考文章


  1. CVE-2014-0569漏洞分析

  2. Cracking the CVE-2014-0569 nutshell

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章