ie漏洞利用的方法有哪些呢?
为了对抗漏洞利用攻击,从window7开始,微软在IE等程序中应用了ALSR、DEP、GS等保护机制。随着ROP等Bypass技术的出现,微软在Windows8系统使用了更严格的保护机制:HiASLR、anti-ROP、vt_guard以及各种anti-heapspray技术。
1?修改BSTR对象
IE8下,最简单有效的方法是修改BSTR对象。这种技术是PeterVreugdenhil在2010Pwn2OwnIE8上提出的。
BSTR结构起始4字节为size字段,末尾为两字节的NULL结束符,中间为wide?char字符串。 修改BSTR的size字段或NULL结束符,即可利用js...全部
为了对抗漏洞利用攻击,从window7开始,微软在IE等程序中应用了ALSR、DEP、GS等保护机制。随着ROP等Bypass技术的出现,微软在Windows8系统使用了更严格的保护机制:HiASLR、anti-ROP、vt_guard以及各种anti-heapspray技术。
1?修改BSTR对象
IE8下,最简单有效的方法是修改BSTR对象。这种技术是PeterVreugdenhil在2010Pwn2OwnIE8上提出的。
BSTR结构起始4字节为size字段,末尾为两字节的NULL结束符,中间为wide?char字符串。
修改BSTR的size字段或NULL结束符,即可利用jscript脚本越界读取BSTR相邻内存区域的内容。
2?修改属性数组
从IE9以后,引入了Nozzle技术,禁止喷射BSTR,而且即使绕过Nozzle,分配的BSTR不在同一个堆块中。
此时可以选择喷射属性数组AttrArray,通过修改AttrArray中的BSTR指针完成信息泄漏。
3?修改Javascript?Array对象
IvanFratric在《ExploitingInternetExplorer1164-bitonWindows8。
1Preview》中提出通过喷射Javascript?Array对象,修改Capacity字段,完成信息泄漏。这种技术同样适用于32位系统下IE11漏洞。
在32位系统中,Javascript?Array对象结构如下。
Array对象在内存中的布局由数组长度决定:
(1)当数组长度0x40,ArrayHeader和ArrayBlock在内存中分布不连续。
修改Capacity字段,增加Array数组的内存读写范围,即可获得相邻内存区域的地址信息。收起