CVE 2017 11882漏洞的分析記錄

2021-10-03 00:23:23 字數 2347 閱讀 1185

windows xp sp pro sp3,x32dbg,010editor,idapro

該poc彈出calc

安裝office 2003,執行poc

根據資料漏洞出現在eqnedt32.exe程序中,所以需要現在word中插入乙個公式3.0的物件

開啟word 2003,插入乙個公式3.0物件

開啟x32dbg,附加eqnedt32.exe程序

定位漏洞觸發點

該poc觸發漏洞建立了calc.exe程序,可以對 createprocessa和createprocessw及winexec下斷點

bp createprocessa

bp createprocessw

bp winexec

在word中開啟poc檔案

x32dbg在winexec斷下,檢視引數,是calc程序的建立處

檢視此時的堆疊呼叫,可以看出上次呼叫的函式的堆疊的ebp已經被破壞為0x41414141,應當是上層函式的內部的不當操作導致了上層棧的溢位,破壞了上層呼叫的返回位址,在上層函式ret時,棧頂esp的返回位址已經被構造為乙個惡意位址進而開始執行。

定位溢位函式

對於緩衝區溢位類的溢位,當我們定位到溢位點後,一般都是向上層追溯棧,根據上面說的,我們的溢位一般都是最近一次的函式呼叫中資料處理不當造成的 ret 位址被破壞,所以優先在堆疊視窗中向上檢視剛剛呼叫函式的棧幀,結合返回位址和ebp可以看出上層棧幀,如下圖所示

可以看出,0x411837 處是溢位函式的內部呼叫,結合上面的ebp=0x12f24c 可以看出,這裡就是最近一次的函式呼叫

上面的gdi32那個位址不是,因為0012f1f0處是ebp,該值並不合理,其應當是ebp=0x12f24c,所以不是

分析溢位函式 

通過addr = 0x411837找到上層函式的開頭處為0x41160f,在此處下斷,重新附加執行,鎖定堆疊,檢視此時的棧頂即ret位址處

f8不斷單步直至上面的返回位址被覆蓋,則精確定位到溢位點處為0x411658處的拷貝指令未進行長度限制

使用ida靜態分析函式0x41160f

分析可以發現函式中使用了strcpy函式配合strlen直接將引數拷貝至棧中,所以導致了棧被破壞,該poc中將shellcode精心構造為命令加返回位址的方式,將原本的字型名稱拷貝變為命令,同時在拷貝名稱的同時將返回位址覆蓋為eqnedt32.exe模組中對winexec的呼叫,這就實現了calc的呼叫。

利用方式

該poc構造了乙個比較巧妙的poc,在不存在dep的情況下,一般的棧溢位都會將shellcode拷貝到棧中執行,利用jmp esp+滑板指令+shellcode的方式實現漏洞的利用,而該poc則在存在了dep的情況下依然可以執行,因為使用的是模組中的**進行winexec執行cmd指令,這也可以當做一種繞過dep的方式。

對於本漏洞可以利用jmp esp+滑板指令+shellcode的方式。

rtf檔案格式如下圖:

函式的呼叫如下

檔案構造方式:

將ret處的位址替換為系統dll中的jmp esp指令(可以使用windbg+mona外掛程式實現查詢),然後後面留出3*4=12個字元的堆疊平衡空間,可以利用滑板指令90進行填充,用於平衡棧擺動

CVE 2017 11882解決方案

office 365 microsoft office 2000 microsoft office 2003 microsoft office 2007 service pack 3 microsoft office 2010 service pack 2 microsoft office 2013...

漏洞復現 CVE 2019 0708 漏洞利用

2019年5月14日微軟官方發布安全補丁,修復了windows遠端桌面服務的遠端 執行漏洞,該漏洞影響了某些舊版本的windows系統。此漏洞是預身份驗證且無需使用者互動,這就意味著這個漏洞可以通過網路蠕蟲的方式被利用。利用此漏洞的任何惡意軟體都可能從被感染的計算機傳播到其他易受攻擊的計算機,其方式...

漏洞復現 CVE 2020 1938漏洞復現

tomcat connector 是 tomcat 與外界連線的通道,使得它與 catalina 能夠接收外部的請求,傳遞給對應的 web 應用程式處理,並返回對應的請求結果。http connector就是用來提供經常用到的http web服務,而ajp connector使用的ajp協議 apa...