深入分析IE8 0day漏洞exploit

需积分: 3 1 下载量 68 浏览量 更新于2024-09-16 收藏 9KB TXT 举报
"对IE8 0day漏洞利用代码的分析学习" 本文将深入探讨一个针对Internet Explorer 8(简称IE8)的0day漏洞利用代码,这个代码被标记为"ie80dayexp"。0day漏洞是指在软件供应商知道之前就被恶意利用的安全漏洞,它们极其危险,因为用户无法通过常规的更新来防范。在这个特定的案例中,攻击者通过精心构造的JavaScript代码来触发漏洞,从而可能导致远程代码执行,使攻击者能够在受害者的系统上获取控制。 分析这段代码,我们可以看到几个关键的组成部分: 1. **变量largeBuffer**:`largeBuffer`变量被初始化为一系列的`%uCCCC%uCCCC`,这是Unicode编码的表示,通常用于填充或构造内存中的特定模式。在某些漏洞利用中,这样的填充可能会帮助攻击者控制内存的布局。 2. **函数funhellokey**:这个函数接受一个`dword`参数,将其转换为16进制字符串,并在前导位不足时补零。然后,它使用`unescape`函数来创建一个特殊的Unicode字符串,这可能是为了构造内存中的特定数据结构。 3. **函数funloadon**:这个函数是整个利用的核心。它首先定义了一个常量`tag`,接着用`funhellokey`函数的返回值和额外的字符串来创建一个长数组`vtable1`。然后,它创建了两个新的`div`元素和一个包含137个`div`元素的数组。这些`div`元素随后被用来触发浏览器的特定行为。 4. **事件处理和属性修改**:`expvalueclass`和`expvaluedtkvee`两个`div`元素设置了`onpropertychange`事件,然后通过属性修改来触发漏洞。特别是`expvalueclass`的`style.position`被连续设置为空字符串,这可能与触发特定的内存访问模式有关。最后,`divs`数组中的元素标题被设置为`vtable1`,这可能是为了影响内存中的指针。 5. **颜色设置**:`expvalueclass.style.color='red'`这一行可能是为了掩盖真正的目的,因为它并不会直接影响漏洞利用过程,但可能会引起用户的注意。 这个漏洞利用过程可能涉及到内存破坏,通过改变对象的属性来操纵内存中的指针,从而达到执行任意代码的目的。由于这是一个0day漏洞,当时用户没有可用的补丁,因此攻击者可以轻易地利用这个漏洞进行攻击。 这段代码展示了恶意攻击者如何利用JavaScript的特性来尝试触发浏览器的内存安全漏洞。理解和分析这种代码有助于安全研究人员开发防御策略,同时提醒用户及时更新他们的软件以防止类似的攻击。
2011-10-25 上传