记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

百度HD客户端远程命令执行及解决方案

2015-01-29 22:50

百度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进行调用。


在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和用户输入进行检查。

 


知识来源: www.2cto.com/Article/201501/373738.html

阅读:198418 | 评论:0 | 标签:无

想收藏或者和大家分享这篇好文章→复制链接地址

“百度HD客户端远程命令执行及解决方案”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

❤人人都能成为掌握黑客技术的英雄❤

ADS

标签云