驾考宝典WebView组件任意代码执行漏洞

admin 2017年4月29日00:35:37评论509 views字数 235阅读0分47秒阅读模式
摘要

2016-04-13: 积极联系厂商并且等待厂商认领中,细节不对外公开
2016-05-28: 厂商已经主动忽略漏洞,细节向公众公开

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

缺陷编号: WooYun-2016-195499

漏洞标题: 驾考宝典WebView组件任意代码执行漏洞

相关厂商: 驾考宝典

漏洞作者: 川zi

提交时间: 2016-04-13 12:06

公开时间: 2016-05-28 12:10

漏洞类型: 文件上传导致任意代码执行

危害等级: 低

自评Rank: 2

漏洞状态: 未联系到厂商或者厂商积极忽略

漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系

Tags标签: 驾考宝典 WebView组件 任意代码执行漏洞

0人收藏


漏洞详情

披露状态:

2016-04-13: 积极联系厂商并且等待厂商认领中,细节不对外公开
2016-05-28: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

#该漏洞属于中国科学院信息工程研究所VARAS团队共同挖掘

驾考宝典有奖试驾页面使用了WebView组件,存在任意代码执行漏洞。

详细说明:

驾考宝典支持的最小SDK版本小于Android API 17,同时在有奖试驾页面使用了WebView组件,导致该组件存在WebView任意代码执行漏洞,攻击者可以篡改该页面从而利用该漏洞,使用户在打开软件页面时执行任意由攻击者构造的代码。

使用apktool反编译后,漏洞所在的文件位置为:

Lcom/handsgo/jiakao/android/controller/MainController.smali

漏洞所在函数为:a()V

具体代码位置如下图所示:

驾考宝典WebView组件任意代码执行漏洞

漏洞证明:

1.软件正常打开

驾考宝典WebView组件任意代码执行漏洞

2.搭建Kali dns欺骗环境

3.虚拟机所在PC连入Kali所在热点

4.进行dns缓存刷新后打开驾考宝典

有奖试驾页面加载时dns被欺骗,连入Kali服务器,加载恶意的html文件的任意JavaScript代码。图示显示了被篡改的页面通过java反射机制调用Android API获取IMEI、IMSI等信息用户信息泄露。

驾考宝典WebView组件任意代码执行漏洞

驾考宝典WebView组件任意代码执行漏洞

修复方案:

1. API Level等于或高于17的Android系统【4】

出于安全考虑,为了防止Java层的函数被随便调用,Google在4.2版本之后,注解,所以如果某应用依赖的API Level为17或者以上,就不会受该问题的影响(注:Android 4.2中API Level小于17的应用也会受影响)。按照Google官方文档[5]使用示例:

class JsObject {

@JavascriptInterface

public String toString() { return "injectedObject"; }

}

webView.addJavascriptInterface(new JsObject(), "injectedObject");

webView.loadData("", "text/html", null);

webView.loadUrl("javascript:alert(injectedObject.toString())");

2. API Level等于或高于17的Android系统

建议不要使用addJavascriptInterface接口,以免带来不必要的安全隐患,请参照博文《在Webview中如何让JS与Java安全地互相调用》[6]。

如果一定要使用addJavascriptInterface接口:

1) 如果使用HTTPS协议加载URL,应进行证书校验防止访问的页面被篡改挂马;

2) 如果使用HTTP协议加载URL,应进行白名单过滤、完整性校验等防止访问的页面被篡改;

3) 如果加载本地Html,应将html文件内置在APK中,以及进行对html页面完整性的校验;

3. 移除Android系统内部的默认内置接口

同时,在2014年发现在Android系统中webkit中默认内置的一个searchBoxJavaBridge_ 接口同时存在远程代码执行漏洞,该漏洞公布于CVE-2014-1939[7], 建议开发者通过以下方式移除该Javascript接口:

removeJavascriptInterface("searchBoxJavaBridge_")

2014年香港理工大学的研究人员Daoyuan Wu和Rocky Chang发现了两个新的攻击向量存在于android/webkit/AccessibilityInjector.java中,分别是"accessibility" 和"accessibilityTraversal" ,调用了此组件的应用在开启辅助功能选项中第三方服务的安卓系统中会造成远程代码执行漏洞。该漏洞公布于CVE-2014-7224, 此漏洞原理与searchBoxJavaBridge_接口远程代码执行相似,均为未移除不安全的默认接口,建议开发者通过以下方式移除该JavaScript接口:

removeJavascriptInterface("accessibility");

removeJavascriptInterface("accessibilityTraversal");

版权声明:转载请注明来源 川zi@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(少于3人评价):

登陆后才能进行评分

0%

0%

100%

0%

0%


评价

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin