1. 程式人生 > >Android靜態安全檢測 -> WebView忽略SSL證書錯誤檢測

Android靜態安全檢測 -> WebView忽略SSL證書錯誤檢測

WebView忽略SSL證書錯誤檢測 -SslErrorHandler.proceed方法

一、API

1. 繼承關係

【1】java.lang.Object

【2】android.os.Handler

【3】android.webkit.SslErrorHandler

2. 主要方法

【1】cancel( )

  停止載入問題頁面

【2】proceed( )

  忽略SSL證書錯誤,繼續載入頁面

【3】其他方法

二、觸發條件

1. 呼叫SslErrorHandler類的proceed方法

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

2. 方法名:onReceivedSslError

三、漏洞原理

【1】Android WebView元件載入網頁發生證書認證錯誤時,會呼叫WebViewClient類的onReceivedSslError方法,如果該方法實現呼叫了handler.proceed()來忽略該證書錯誤,則會受到中間人攻擊的威脅,可能導致隱私洩露

【2】漏洞程式碼樣例

四、修復建議

【1】不呼叫android.webkit.SslErrorHandler的proceed方法

【2】當發生證書認證錯誤時,採用預設的處理方法SslErrorHandler.cancel(),停止載入問題頁面