CVE 2012 0158個人分析

2022-05-04 15:15:17 字數 1277 閱讀 5984

cve-2012-0158是乙個比較有名的老漏洞了,這次從論壇上找到乙個poc檔案,利用這個poc來分析cve-2012-0158漏洞的形成。

參考自此帖子,但是分析是個人獨立完成的,只是參考了poc並沒有抄襲思路。

本文步驟:重現漏洞-->漏洞分析-->漏洞利用-->總結

開啟poc檔案,結果如圖

環境如下

如圖可見漏洞復現成功,彈出乙個計算器。

通過已有的poc找出漏洞產生的原因。

首先定位shellcode在記憶體中的位址,這裡使用的是通過對api下斷點找到shellcode的位址。

如圖。可見此時shellcode已在棧中。00121461即為棧中空間,從3個nop起為shellcode

在此時看一下棧的整體結構,如下圖

4個byte的nop之後接的便是shellcode,根據棧溢位的特點我猜測,7ffa4512為覆蓋棧返回位址的地方。跟一下發現如圖

原來7ffa4512處是乙個jmp esp

這是乙個常見的棧溢位跳板。據此我判斷這是乙個使用跳板位址覆蓋棧返回位址的棧溢位,而且此時的esp正好指向shellcode的起始位置,4個byte的nop用來

抵消retn 0x8造成的esp下移。據此棧示意圖如下

接下來查詢是**發生的覆蓋,因為是當前函式的棧禎發生溢位,說明肯定是子函式或者當前函式導致的覆蓋。但是本棧禎已經被覆蓋的一塌糊塗了,怎麼知道這個函式的位址呢?

那麼就只能對棧進行回溯,正好可以發現乙個已經用過的函式返回位址,找到發生溢位的這個棧禎。經過單步跟進最終發現產生問題的語句在這裡,如圖

可見是乙個rep movs導致的溢位。

如圖可知溢位函式處於mscomctl模組

CVE 2012 0158漏洞分析記錄

漏洞描述 該漏洞發生在office 2003 sp3 mscomctl.ocx模組中,在拷貝一段記憶體資料,由於拷貝條件邏輯錯誤,造成的棧緩衝區溢位。分析環境win7專業版 軟體 office 2003 分析工具 od,ida 漏洞分析過程 1.獲取poc 網路,論壇,metasploit 2.搭建...

分析CVE 2012 0158完善靜態檢測工具

最近在完善樣本檢測工具,分析了很多vt 上0158的樣本,漏洞很簡單,先說一說遇到的比較奇特的樣本 1office ppt和xls都存在彩蛋,存在預設密碼 xls 預設密碼是 velvetsweatshop ppt 的預設密碼是 01hannes ruescher 01 這種情況靜態檢測工具基本沒有...

2006 10 12個人感悟

1。要真正掌握計算機系統,需要對計算機的發展和組成由相當的了解,也許這不是乙個容易的過程,但必須是乙個前進的方向。每次遇到技術瓶頸,如果能夠重新學習計算機系統的知識,必定會有另外的發現。例如多看看 深入理解計算機系統 2。通過軟體我們實現邏輯表達,通過硬體我們真正完成控制實質。從某些程度上講,硬體和...