(8)客户端app安全_webview安全风险

WebView是一个基于webkit引擎、展现web页面的控件。

(1)Webview明文存储密码风险

Android的Webview组件中默认打开了提示用户是否保存密码的功能,如果用户选择保存,用户名和密码将被明文存储到该应用目录databases/webview.db中。而本地明文存储的用户名和密码,不仅会被该应用随意浏览,其他恶意程序也可能通过提权或者root的方式访问该应用的webview数据库,从而窃取用户登录过的用户名信息以及密码。

(2)Webview远程代码执行漏洞

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

(3)Webview绕过证书校验漏洞

客户端的Webview组件访问使用HTTPS协议加密的url时,如果服务器证书校验错误,客户端应该拒绝继续加载页面。但如果重载WebView的onReceivedSslError()函数并在其中执行handler.proceed(),客户端可以绕过证书校验错误继续访问此非法URL。这样将会导致“中间人攻击”,攻击者冒充服务器与银行客户端进行交互,同时冒充银行客户端与银行服务器进行交互,在充当中间人转发信息的时候,窃取手机号,账号,密码等敏感信息。

(4)未移除有风险的Webview系统隐藏接口

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

(5)WebView忽略SSL证书错误

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

你可能感兴趣的:(app安全测试)