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

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

缺陷编号:wooyun-2015-090171

漏洞标题:百度HD客户端远程命令执行

相关厂商:百度

漏洞作者: 小荷才露尖尖角

提交时间:2015-01-06 11:37

修复时间:2015-04-06 11:38

公开时间:2015-04-06 11:38

漏洞类型:远程代码执行

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-01-06: 细节已通知厂商并且等待厂商处理中
2015-01-07: 厂商已经确认,细节仅向厂商公开
2015-01-10: 细节向第三方安全合作伙伴开放
2015-03-03: 细节向核心白帽子及相关领域专家公开
2015-03-13: 细节向普通白帽子公开
2015-03-23: 细节向实习白帽子公开
2015-04-06: 细节向公众公开

简要描述:

百度HD客户端访问恶意链接导致远程命令执行

详细说明:

当前最新版的百度HD客户端(v1.3),在Android 4.2.2版本中使用时,仍存在可被网页中Javascript注入命令的Webview对象,对象名包括:go_back_js_interface_name,Bdbox_android_utils,Bdbox_android_videoCore,bd_searchbox_interface,Bdbox_android_send_intent

漏洞证明:

测试手机为酷比魔方TALK 7X,型号U51GT-C4B, Android 4.2.2
我们利用wooyun的webview测试网页发现此漏洞

device-2015-01-05-225041.png


反汇编百度HD客户端,其编译级别为

<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="17" />


在package com.baidu.browser.framework.BdWindow中,存在如下代码片段

v0.addJavascriptInterface(new BdWindow$GobackJSInterface(this, null), "go_back_js_interface_name");
v0.addJavascriptInterface(new BdWindow$JavaScriptInterface(this, null), "bd_searchbox_interface");
v0.addJavascriptInterface(new SendIntentJavaScriptInterface(((BWebView)v0)), "Bdbox_android_send_intent");
v0.addJavascriptInterface(new UtilsJavaScriptInterface(this.g, ((BWebView)v0)), "Bdbox_android_utils");
v0.addJavascriptInterface(new VideoCoreJSInterface(this.g, this), "Bdbox_android_videoCore");


表明了可以被Javascript操纵的Java对象。
我们查看类BdWindow$GobackJSInterface、BdWindow$JavaScriptInterface、SendIntentJavaScriptInterface、UtilsJavaScriptInterface、VideoCoreJSInterface,发现其均存在@javascript注解的public方法,例如,在com.baidu.searchbox.browser.UtilsJavaScriptInterface中,存在如下方法,

@JavascriptInterface public void currPageUrl(String arg2) {
if(this.currPageUrlCallback != null && (f.a(this.mBWebView))) {
this.currPageUrlCallback.a(arg2);
}
}
@JavascriptInterface public String getNetInfo() {
String v0 = null;
if(this.mContext != null && (f.a(this.mBWebView))) {
v0 = ah.g(this.mContext) ? ah.a(1, u.a(this.mContext).k()) : ah.a(0, "0");
}
return v0;
}
@JavascriptInterface public String paramsRender(String arg2) {
String v0 = this.mContext == null || !f.a(this.mBWebView) ? null : u.a(this.mContext).d(arg2);
return v0;


这进一步说明了漏洞的存在,在Android 4.2及以上中,仅有@JavascriptInterface注解的public方法可通过Javascript进行调用。
我们参考wooyun的一篇文章完成了挂马实验,参见http://drops.wooyun.org/papers/548。
在Web服务器中放入攻击网页attackwebview2.html,利用百度HD客户端进行访问。
访问恶意链接

device-2015-01-05-232021.png


在/sdcard目录生成rat6.apk(Androrat),并利用手机自带的adb自动静默安装(需要有前提条件:adb在root权限下连接本机)

device-2015-01-05-232232.png


修复方案:

1、禁用Webview的addJavascriptInterface,或仅在Webview组件加载可信任内容时使用addJavascriptInterface
2、使用shouldOverrideUrlLoading开发Javascipt操作java的接口,并对加载的URL和用户输入进行检查。

版权声明:转载请注明来源 小荷才露尖尖角@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2015-01-07 13:46

厂商回复:

感谢提交,已通知业务部门处理

最新状态:

暂无


漏洞评价:

评论

  1. 2015-04-30 08:22 | lo0o ( 实习白帽子 | Rank:32 漏洞数:7 | hacking for fun)

    看图脖子歪了