1. 程式人生 > >Android靜態安全檢測 -> WebView明文儲存密碼

Android靜態安全檢測 -> WebView明文儲存密碼

WebView明文儲存密碼 -WebSettings.setSavePassword方法

一、API

1. 繼承關係

【1】java.lang.Object

【2】android.webkit.WebSettings

2. 主要方法

【1】setJavaScriptEnabled(boolean flag):是否支援js

【2】setPluginsEnabled(boolean flag):是否支援外掛

【3】setSavePassword(boolean save):是否儲存密碼

【4】其他方法

二、觸發條件

1. 呼叫getSettings方法,獲取WebSettings物件

【1】對應到smali語句中的特徵:;->getSettings()Landroid/webkit/WebSettings;

2. 呼叫WebSettings.setSavePassword方法,設定setSavePassword(true)或沒有顯示設定(預設為true)

【1】對應到smali語句中的特徵:

  Landroid/webkit/WebSettings;->setSavePassword(Z)V

  判斷對暫存器的賦值:const v1 0x1

三、漏洞原理

【1】在使用WebView的過程中忽略了WebView setSavePassword,當用戶選擇儲存在WebView中輸入的使用者名稱和密碼,則會被明文儲存到應用資料目錄的databases/webview.db中。如果手機被root就可以獲取明文儲存的密碼,造成使用者的個人敏感資料洩露

四、修復建議

【1】使用WebView.getSettings().setSavePassword(false)來禁止儲存密碼