[漏洞分析]對CVE-2017-11882的分析
阿新 • • 發佈:2018-12-15
對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進位制複製到指定的位置。再次開啟樣本就不會彈出計算器。而是我們所指定的網頁。