1. 程式人生 > >[漏洞分析]對CVE-2017-11882的分析

[漏洞分析]對CVE-2017-11882的分析

對CVE-2017-11882的分析

漏洞簡介:

這個漏洞出現在一個老舊的微軟工具Equation Editor中的EQNEDT32.exe可執行程式,這個工具的作用是插入數學公式,雖然在Office 2007後就被取代,但出於早期相容性的考慮仍然得以保留。如圖所示。
在這裡插入圖片描述

漏洞分析環境與工具

漏洞分析環境:Window 7專業版(32位)
帶有漏洞的軟體:office 2003 sp3
工具:OllyDbg、IDAPro

漏洞復現

跟據漏洞介紹,我們得知這個工具的實現是一個單獨的exe檔案,所以應該先將這個exe開啟。在用OllyDbg除錯的時候,應當附加EQNEDT32.exe程式,而不是附加Word文件那個exe.

首先,開啟Office2003,點選選單-插入-物件,找到公式3.0。
在這裡插入圖片描述

在這裡插入圖片描述
這樣EQNEDT32.exe就開始運行了。接著開啟OllyDbg附加程序。F9執行。
在這裡插入圖片描述
回到word文件中開啟測試檔案,發現彈出了一個計算器。

漏洞分析

因為彈出了一個計算器,所以我們可以推斷是呼叫了WinExec之類的執行程式的程序。再次重複以上步驟,對WinExec、CreateProcess、ShellExecute之類的函式下斷點。執行結果如圖所示。
在這裡插入圖片描述
觀察堆疊,可以找到一個函式,在這個函式所在的函式開始處下斷點。
在這裡插入圖片描述
在這裡插入圖片描述
再次執行,當斷點觸發之後單步除錯,觀察堆疊。發現執行該條指令後,函式的返回地址被修改。在此觀察堆疊的情況。
在這裡插入圖片描述


在這裡插入圖片描述
當這個函式執行完之後,就返回到這個地址上面去,而這個地址所對應的彙編指令是call WinExec,這個函式呼叫是在exe中,並非在ShellCode中。這個地址下面對應著兩個引數分別是一個字串命令和一個整型變數。
在這裡插入圖片描述
對觸發漏洞的函式進行詳細分析,找到該程序的所在的位置,使用IDAPro開啟,定位到觸發漏洞的函式。F5進行分析。
在這裡插入圖片描述

漏洞成因

將一個字串拷貝到一個char型別變數中,導致緩衝區溢位。

漏洞利用

開啟指定的網頁,在cmd命令中有“explorer 網址”這樣一條命令可以開啟指定的網頁,所以在特定程式中進行修改。
在這裡插入圖片描述
將16進位制複製出來,用010Editor開啟樣本,將16進位制複製到指定的位置。再次開啟樣本就不會彈出計算器。而是我們所指定的網頁。
在這裡插入圖片描述