导读:ie浏览器是一个非常常用的浏览器,所以,我们在使用ie浏览器的过程当中出现一些漏洞是非常正常的,而大多数人认为,IE浏览器的漏洞必须及时的处理掉,其实不然,我们还可以将IE浏览器的漏洞合理利用起来,这样我们不仅解决了IE浏览器的漏洞,而且还可以很好的使用ie浏览器,那么你知道如何利用ie浏览器的漏洞吗?下面我们就一起来看看利用ie浏览器漏洞的方法吧。
利用IE浏览器漏洞的方法:
(资料图)
本文主要研究IE漏洞利用中的信息泄漏技术,通过泄漏模块地址信息或shellcode地址,绕过ALSR等防御机制。信息泄漏的主体思路是选定某个特殊对象,通过漏洞触发修改该对象的某个字段,增加内存读写范围,从而获取所需信息。
为了对抗漏洞利用攻击,从window7开始,微软在IE等程序中应用了ALSR、DEP、GS等保护机制。随着ROP等Bypass技术的出现,微软在Windows8系统使用了更严格的保护机制:HiASLR、anti-ROP、vt_guard以及各种anti-heapspray技术。
1 修改BSTR对象
IE8下,最简单有效的方法是修改BSTR对象。这种技术是Peter Vreugdenhil在 2010 ?Pwn2Own IE 8 上提出的。
BSTR结构起始4字节为size字段,末尾为两字节的NULL结束符,中间为wide char字符串。修改BSTR的size字段或NULL结束符,即可利用jscript脚本越界读取BSTR相邻内存区域的内容。
2 修改属性数组
从IE9以后,引入了Nozzle技术,禁止喷射BSTR,而且即使绕过Nozzle,分配的BSTR不在同一个堆块中。此时可以选择喷射属性数组AttrArray,通过修改AttrArray中的BSTR指针完成信息泄漏。
3 修改Javascript Array对象
Ivan Fratric在《Exploiting Internet Explorer11 64-bit on Windows 8.1 Preview》中提出通过喷射Javascript Array对象,修改Capacity字段,完成信息泄漏。这种技术同样适用于32位系统下IE11漏洞。
在32位系统中,Javascript Array对象结构如下。
Array对象在内存中的布局由数组长度决定:
(1)当数组长度<=0x40,Array Header和ArrayBlock在内存中是连续分布;
(2)当数组长度>0x40,Array Header和ArrayBlock在内存中分布不连续。
修改Capacity字段,增加Array数组的内存读写范围,即可获得相邻内存区域的地址信息。
上面就是ie浏览器漏洞的利用,你学会了吗?如果你在使用ie浏览器的过程当中也出现了类似的问题,那就别再使用原来处理的方法了,合理的将IE浏览器漏洞利用起来,会更好的帮助你解决IE浏览器的漏洞哦,相信通过以上的介绍,你一定可以学会如何对IE浏览器的漏洞做出利用的,赶快来了解一下吧,上面的方法,一定会在很大程度上帮助到你的。