第一次ActiveX Fuzzing测试
接著上一篇的看雪Exploit me試題。
這道題給出了一個ActiveX的DLL,挖掘這個DLL中的漏洞。
由于從來沒有接觸過ActiveX的Fuzzing,所以找了一些文章來看。自己動手試驗了一下。
根據提示,使用了Comraider來作為Fuzzing工具。這個工具比較老了,找了好久才找到下載地址
http://down.51cto.com/data/1100082
?
根據出題者的意圖,應該是先對這個控件進行Fuzzing,然后根據結果進行分析得出漏洞。最后要這個漏洞寫出poc,使用堆噴來完成。
實驗環境是ie6+xp sp3
?
根據Fuzzing的結果可知,LoadPage存在漏洞,看了一下測試的payload,是這樣的。
根據256個A,猜想是個棧溢出。
用od調試這個ActiveX控件,這里費了一些時間。因為從來沒有調試過ActiveX控件,不知道怎么定位那些函數,因為那些并不是導出函數。后來發現,原來oleaut32.dll的
DispCallFunc函數會調用這個ActiveX中的函數,也就是只要斷在DispCalFunc就可以了。
進入之后發現程序邏輯很復雜,有很多子函數調用,逆向分析一時找不到頭緒。于是想到了用OD自動單步執行,來定位是執行到哪一條指令時導致的異常。結果如圖
可以看到是4573F25處的retn指令導致的異常,此時棧中的返回地址已被覆蓋,導致了retn到不可訪問的地址,導致了異常。
用ida找到這一段程序后可以發現,這是一個strcmp的誤用導致的問題。
rep movsd導致了漏洞的發生。
300個字節的數據剛好可以淹沒返回地址。
轉載于:https://www.cnblogs.com/Ox9A82/p/5266255.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的第一次ActiveX Fuzzing测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java对象转json字符串
- 下一篇: 常用的加密解密算法