IE FirefoxURL协议处理器命令注入漏洞

来源:岁月联盟 编辑:zhuzhu 时间:2007-07-20
IE FirefoxURL协议处理器命令注入漏洞

受影响系统:
Microsoft Internet Explorer 7.0
Microsoft Internet Explorer 7 Beta 2
Microsoft Internet Explorer 7 Beta 1
Microsoft Internet Explorer 6.0 SP1
Microsoft Internet Explorer 6.0
Mozilla Firefox 2.0.0.4
    - Microsoft Windows XP SP2

描述:
Internet Explorer是微软发布的非常流行的WEB浏览器。

IE在安装了Firefox的机器上调用特定的协议处理器时存在命令注入漏洞,远程安全者可能利用此漏洞在用户机器上执行任意命令。

在Windows系统上,如果安装了Firefox的话,Firefox会安装一些Mozilla专用协议(如FirefoxURL和FirefoxHTML)的协议处理器。如果Windows遇到了无法处理的URL协议,就会在Windows注册表中搜索适当的协议处理器,找到了正确的处理器后就会向其传送URL字符串,但没有执行任何过滤。

假设在Windows系统上安装了Firefox且注册了FirefoxURL协议处理器,通常这个协议处理器的的shell open命令如下:

[HKEY_CLASSES_ROOT/FirefoxURL/shell/open/command/@]
C://PROGRA~1//MOZILL~2//FIREFOX.EXE -url “%1″ -requestPending

当Internet Explorer遇到了对FirefoxURL URL方案中内容的引用时,会以EXE镜像路径调用ShellExecute,并未经任何输入验证便传送了整个请求URI。以下请求:

FirefoxURL://foo” –argument “my value

会导致使用以下命令行启动Firefox:

“C:/PROGRA~1/MOZILL~2/FIREFOX.EXE” -url “firefoxurl://foo” –argument “my value/” –requestPending

因此可以对firefox.exe进程指定任意参数,这就等于获得了-chrome命令行参数,因为安全者可以指定任意Javascript代码,然后以可信任Chrome内容的权限执行。

临时解决方法:
禁用Mozilla Firefox协议处理器,删除或重新命名以下注册表项:

HKEY_CLASSES_ROOT/FirefoxURL
HKEY_CLASSES_ROOT/FirefoxHTML

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