关于Android中WebView远程代码执行漏洞浅析-创新互联

1. WebView 远程代码执行漏洞描述

创新互联公司不只是一家网站建设的网络公司;我们对营销、技术、服务都有自己独特见解,公司采取“创意+综合+营销”一体化的方式为您提供更专业的服务!我们经历的每一步也许不一定是最完美的,但每一步都有值得深思的意义。我们珍视每一份信任,关注我们的成都网站建设、做网站质量和服务品质,在得到用户满意的同时,也能得到同行业的专业认可,能够为行业创新发展助力。未来将继续专注于技术创新,服务升级,满足企业一站式营销型网站需求,让再小的品牌网站制作也能产生价值!

      Android API level 16以及之前的版本存在远程代码执行安全漏洞,该漏洞源于程序没有正确限制使用WebView.addJavascriptInterface方法,远程攻击者可通过使用Java Reflection API利用该漏洞执行任意Java对象的方法,简单的说就是通过addJavascriptInterface给WebView加入一个JavaScript桥接接口,JavaScript通过调用这个接口可以直接操作本地的JAVA接口。该漏洞最早公布于CVE-2012-6636【1】,其描述了WebView中addJavascriptInterface API导致的远程代码执行安全漏洞。


      该漏洞公布的近期,多款Android流行应用曾被曝出高危挂马漏洞:点击消息或朋友社区圈中的一条网址时,用户手机然后就会自动执行被挂马的代码指令,从而导致被安装恶意扣费软件、向好友发送欺诈短信、通讯录和短信被窃取以及被远程控制等严重后果。在乌云漏洞平台上,包括Android版的微信、QQ、腾讯微博、QQ浏览器、快播、百度浏览器、金山浏览器等大批TOP应用均被曝光同类型的漏洞。


      论文Attacks on WebView in the Android System【2】中指出可以利用所导出的读写文件接口来进行文件的读写操作,攻击者可以通过中间人攻击篡改Webview所显示的页面来达到对手机文件系统的控制。


2. WebView 远程代码执行影响范围


      Android API level 小于17 (即Android 4.2之前的系统版本)


3.WebView 远程代码执行漏洞详情


1) WebView 远程代码执行漏洞位置:


      WebView.addJavascriptInterface(Object obj, String interfaceName)


2)WebView 远程代码执行漏洞触发前提条件:


      使用addJavascriptInterface方法注册可供JavaScript调用的Java对象;


      使用WebView加载外部网页或者本地网页;


      Android系统版本低于4.2;


3) WebView 远程代码执行漏洞原理:


      Android系统通过WebView.addJavascriptInterface方法注册可供JavaScript调用的Java对象,以用于增强JavaScript的功能。但是系统并没有对注册Java类的方法调用的限制。导致攻击者可以利用反射机制调用未注册的其它任何Java类,最终导致JavaScript能力的无限增强。攻击者利用该漏洞可以根据客户端能力为所欲为。


4. WebView 远程代码执行漏洞POC


      1) 利用addJavascriptInterface方法注册可供JavaScript调用的java对象 “injectedObj”,利用反射机制调用Android API sendTextMessage来发送短信。


      java代码:


mWebView = new WebView(this);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(this, "injectedObj");
mWebView.loadUrl(file:///android_asset/www/index.html);

分享名称:关于Android中WebView远程代码执行漏洞浅析-创新互联
本文URL:http://myzitong.com/article/ihddc.html