安天实验室对MS09-002 IE7漏洞进行了原理分析,分析报告如下。
MS09-002漏洞与去年的MS08-069漏洞原理类似,同时该漏洞也是发生在IE7使用的MSHTML.dll中,当文档对象释放掉后,内存指针没有被释放,继续利用,而这个指针被人为指向了一段堆地址,而如果这段地址被 ShellCode 覆盖过的话,调用这个指针就会导致有溢出。
攻击利用代码
从代码中看到创建了对象O1,cloneNode从文档层次中复制对象的引用给O2,这时O1.clearAttributes从对象中删除全部标签属性和值。再次调用click属性指针,该指针被指向到Shellcode的位置导致溢出发生。
这是从调试器中看mshtml.dll中释放对象后再次利用这个对象的指针EAX,该ECX中的值为0x0B0BFFFF,即跳转到shellcode的地址。由于文档对象已经被销毁,接下来执行call dword ptr [ecx+4]后,将跳转到一个0x0B0BFFFF+4位置执行,该位置被设置成shellcode的代码,这个位置是被释放文档对象原来所在内存位置。
说明:
当安装有IE7的用户浏览被攻击者特殊构造的网页时,系统有可能会自动从恶意网站上下载并运行恶意程序。被感染病毒的用户系统可能被远程控制,盗取用户敏感信息。甚至导致死机。
漏洞信息:
1.未初始化的内存损坏漏洞 – CVE-2009-0075
Internet Explorer访问已被删除的对象的方式中存在一个远程执行代码漏洞。攻击者可以通过构建特制的网页来利用该漏洞。当用户查看网页时,该漏洞可能允许远程执行代码。成功利用此漏洞的攻击者可以获得与登录用户相同的用户权限。
2.CSS 内存损坏漏洞 - CVE-2009-0076
Internet Explorer处理级联样式表(CSS)的方式中存在一个远程执行代码漏洞。攻击者可以通过构建特制的网页来利用该漏洞。当用户查看网页时,该漏洞可能允许远程执行代码。成功利用此漏洞的攻击者可以获得与登录用户相同的用户权限。
关于MS09-002漏洞的详细信息参照:
http://www.microsoft.com/china/technet/security/bulletin/MS09-002.mspx
本文来源:不详 作者:佚名