46. 某 Android 應用的 WebView 為方便除錯,沒有關閉「JavaScript 介面」,暴露 Java 物件給載入的網頁。攻擊者誘導使用者開啟惡意網頁,該網頁呼叫被暴露的 Java 方法以讀取本機檔案與敏感資料。這種攻擊方法稱之為下列何項?
(A) 預設憑證信任(Trust All Certificates)
(B) WebView 注入攻擊(WebView Injection)
(C) Session 攻擊
(D) NFC 重送攻擊

答案:登入後查看
統計: A(8), B(37), C(4), D(0), E(0) #3671682

詳解 (共 1 筆)

#7256295

這題的正確答案是:

(B) WebView 注入攻擊 (WebView Injection)

解析

這題描述的是 Android 開發歷史上非常經典的 addJavascriptInterface 遠端代碼執行漏洞 (RCE)

攻擊原理:

  1. 橋接機制: Android 的 WebView 元件提供了一個 addJavascriptInterface 方法,允許開發者將 Java 物件映射到網頁的 JavaScript 中,讓網頁可以呼叫 App 的原生功能(Native Code)。

  2. 漏洞成因: 在 Android 4.2 (API Level 17) 以前,這個機制沒有權限控管。攻擊者只要能讓 WebView 載入惡意網頁,網頁中的 JavaScript 就可以透過這個介面,使用 Java 的反射機制 (Reflection) 去呼叫該 Java 物件繼承的所有方法(包含 Runtime.getRuntime().exec())。

  3. 後果: 攻擊者可以直接在手機上執行任意指令(如讀取 SD 卡檔案、上傳通訊錄、安裝木馬),造成嚴重危害。

雖然在 Android 4.2 之後增加了 @JavascriptInterface 註解來限制可被呼叫的方法,但如果開發者為了除錯方便而忽略這些安全措施(如題目所述),或是不當暴露了敏感的 Java 物件,依然會遭到 WebView Injection 攻擊。

其他選項為什麼不符合?

  • (A) 預設憑證信任 (Trust All Certificates):

    • 這屬於 網路傳輸層 的安全問題。是指 App 在連線 HTTPS 時,程式碼寫死「信任所有憑證」,導致駭客可以透過中間人攻擊 (MitM) 攔截數據。這跟 JavaScript 或 WebView 內部邏輯無關。

  • (C) Session 攻擊:

    • 這是針對 身分驗證 的攻擊(如 Session Hijacking, Fixation),通常是竊取 Cookie 或 Token,而非利用 WebView 的介面漏洞來執行程式碼。

  • (D) NFC 重送攻擊:

    • 這是針對 近場通訊 (NFC) 硬體的攻擊,常見於門禁卡或行動支付複製,與網頁瀏覽器 (WebView) 完全無關。

 

0
0