webview漏洞

1. webView绕过证书校验漏洞(客户端访问使用Https协议加密的url时,如果服务器证书校验错误,客户端应该拒绝继续加载页面)

解决方案:如果服务器证书校验错误,客户端应该拒绝继续加载页面

2 Webview明文存储密码风险,webview默认打开了提示用户是否保存密码的功能,需设置自动保存密码功能,通过设置webview.getSettings().setSavePassWord(false)关闭webview组件的保存密码功能。

3. Webview File同源策略绕过漏洞:

setAllowFileAccess(true);//设置为 false 将不能加载本地 html 文件

// 设置是否允许通过 file url 加载的 Js代码读取其他的本地文件

setAllowFileAccessFromFileURLs(false);

//设置是否允许通过fileurl加载的Javascript可以访问其他任何的源,也就是说,它包括其他的文件和http,https等其他的源(同源跨域访问)

setAllowUniversalAccessFromFileURLs(false);

if (url.startsWith("file://") {

    setJavaScriptEnabled(false);} else {

    setJavaScriptEnabled(true);}

4. Webview远程代码执行漏洞:Webview是Android用于浏览网页的组件,其包含的接口函数addJavascriptInterface可以将Java类或方法导出以供JavaScript调用,实现网页JS与本地JAVA的交互。由于系统没有限制已注册JAVA类的方法调用,因此未注册的其它任何JAVA类也可以被反射机制调用,这样可能导致被篡改的URL中存在的恶意代码被执行,用户手机被安装木马程序,发送扣费短信,通信录或者短信被窃取,甚至手机被远程控制。

5.未移除有风险的Webview系统隐藏接口android webview组件包含3个隐藏的系统接口:searchBoxJavaBridge, accessibilityTraversal以及accessibility,恶意程序可以利用它们实现远程代码执行。需通过显示调用removeJavascriptInterface移除这三个系统隐藏接口。

mWebView.removeJavascriptInterface("searchBoxJavaBridge_");mWebView.removeJavascriptInterface("accessibility");mWebView.removeJavascriptInterface("accessibilityTraversal");

6.WebView忽略SSL证书错误

WebView调用onReceivedSslError方法时,直接执行handler.proceed()来忽略该证书错误。忽略SSL证书错误可能引起中间人攻击

应用数据任意备份风险,allowBackup设置true时,会泄露用户敏感信息

拒绝服务攻击漏洞,将不必要导出的组件相应的exported属性设置为false

7.加固壳识别、JAVA代码反编译风险、应用签名未校验风险、WebView明文存储密码风险、WebView同源策略绕过漏洞、动态调试攻击风险违规行为

你可能感兴趣的:(webview漏洞)