Android安全检测 - WebView系统隐藏接口漏洞

这一章我们来学习“WebView系统隐藏接口漏洞”,了解这个漏洞发生的原因及其应对的方法。

一、漏洞原理

CVE-2014-1939:

在java/android/webkit/BrowserFrame.java文件中,通过API addJavaScriptInterface()添加了一个SearchBoxImpl类的对象searchBoxJavaBridge_,所以攻击者可通过searchBoxJavaBridge_对象进行反射攻击,通过访问searchBoxJavaBridge_接口利用该漏洞执行任意Java代码,3.0<=Google Android <= 4.3.1 受到此漏洞的影响。

CVE-2014-7224:

香港理工大学发现两个新的攻击向量存在于android/webkit/AccessibilityInjector.java中,当系统辅助功能中的任意一项服务被开启后,所有由系统提供的WebView都会被加入两个JS objects,分别是”accessibility” 和”accessibilityTraversal” ,Google Android < 4.4 受到此漏洞的影响。

CVE-2014-1939CVE-2014-7224漏洞,都是通过WebView远程代码执行漏洞(CVE-2012-6336)延伸出来的,最终都是利用WebView提供的addJavaScriptInterface

二、检测手段

主要采取静态代码扫描加人工复核的方式(纯代码扫描会存在误报)。
检测方法:
step1:在代码内全局搜索是否使用了WebView,若使用了WebView则搜索是否使用了WebView.removeJavascriptInterface移除了searchBoxJavaBridge_ 、accessibility、accessibilityTraversal接口。若移除则当前对象的WebView为安全。
step2:人工复核静态扫描结果(复核的方法在修复方法中说明)
step3:汇总结果

三、修复方法

1、将最小兼容版本(minSdkVersion)大于等于17,此漏洞则不存在风险(建议尽量提高最小的兼容版本,在部分Android API 17版本的设备中,仍可利用此漏洞,建议提高最低兼容版本为19)。
2、使用WebView的过程中移除searchBoxJavaBridge_ 、accessibility、accessibilityTraversal接口。


asjhan for Android reverse

posted @ 2021-09-24 14:44  asjhan  阅读(41)  评论(0编辑  收藏  举报  来源