導讀:ie瀏覽器是一個非常常用的瀏覽器,所以,我們在使用ie瀏覽器的過程當中出現(xiàn)一些漏洞是非常正常的,而大多數(shù)人認為,IE瀏覽器的漏洞必須及時的處理掉,其實不然,我們還可以將IE瀏覽器的漏洞合理利用起來,這樣我們不僅解決了IE瀏覽器的漏洞,而且還可以很好的使用ie瀏覽器,那么你知道如何利用ie瀏覽器的漏洞嗎?下面我們就一起來看看利用ie瀏覽器漏洞的方法吧。
利用IE瀏覽器漏洞的方法:
【資料圖】
本文主要研究IE漏洞利用中的信息泄漏技術,通過泄漏模塊地址信息或shellcode地址,繞過ALSR等防御機制。信息泄漏的主體思路是選定某個特殊對象,通過漏洞觸發(fā)修改該對象的某個字段,增加內(nèi)存讀寫范圍,從而獲取所需信息。
為了對抗漏洞利用攻擊,從window7開始,微軟在IE等程序中應用了ALSR、DEP、GS等保護機制。隨著ROP等Bypass技術的出現(xiàn),微軟在Windows8系統(tǒng)使用了更嚴格的保護機制:HiASLR、anti-ROP、vt_guard以及各種anti-heapspray技術。
1 修改BSTR對象
IE8下,最簡單有效的方法是修改BSTR對象。這種技術是Peter Vreugdenhil在 2010 ?Pwn2Own IE 8 上提出的。
BSTR結構起始4字節(jié)為size字段,末尾為兩字節(jié)的NULL結束符,中間為wide char字符串。修改BSTR的size字段或NULL結束符,即可利用jscript腳本越界讀取BSTR相鄰內(nèi)存區(qū)域的內(nèi)容。
2 修改屬性數(shù)組
從IE9以后,引入了Nozzle技術,禁止噴射BSTR,而且即使繞過Nozzle,分配的BSTR不在同一個堆塊中。此時可以選擇噴射屬性數(shù)組AttrArray,通過修改AttrArray中的BSTR指針完成信息泄漏。
3 修改Javascript Array對象
Ivan Fratric在《Exploiting Internet Explorer11 64-bit on Windows 8.1 Preview》中提出通過噴射Javascript Array對象,修改Capacity字段,完成信息泄漏。這種技術同樣適用于32位系統(tǒng)下IE11漏洞。
在32位系統(tǒng)中,Javascript Array對象結構如下。
Array對象在內(nèi)存中的布局由數(shù)組長度決定:
(1)當數(shù)組長度<=0x40,Array Header和ArrayBlock在內(nèi)存中是連續(xù)分布;
(2)當數(shù)組長度>0x40,Array Header和ArrayBlock在內(nèi)存中分布不連續(xù)。
修改Capacity字段,增加Array數(shù)組的內(nèi)存讀寫范圍,即可獲得相鄰內(nèi)存區(qū)域的地址信息。
上面就是ie瀏覽器漏洞的利用,你學會了嗎?如果你在使用ie瀏覽器的過程當中也出現(xiàn)了類似的問題,那就別再使用原來處理的方法了,合理的將IE瀏覽器漏洞利用起來,會更好的幫助你解決IE瀏覽器的漏洞哦,相信通過以上的介紹,你一定可以學會如何對IE瀏覽器的漏洞做出利用的,趕快來了解一下吧,上面的方法,一定會在很大程度上幫助到你的。