DEF CON 33 - Browser Extension Clickjacking: One Click and Your Credit Card Is Stolen - Marek Tóth
三句話摘要
安全研究員揭露瀏覽器擴充套件的點擊劫持(ClickJacking)漏洞,攻擊者只需讓受害者點擊幾次即可竊取信用卡資料、個人資料與帳號密碼。 --- 只要網站有 DOM 注入能力或擴充套件設定不當,攻擊者就能利用普通的「接受 cookie」點擊竊走你的信用卡與帳號密碼——ClickJacking 並未消失,只是從 Web 搬到了擴充套件。 瀏覽器擴充套件安全責任歸屬不同於 Web 應用:Web 應用可依賴瀏覽器的同源政策、Cookie 屬性等防護,而擴充套件的安全規則須由開發者自行在 manifest.json 中定義,因此防護設定常被遺漏。
重點整理
重點- 1
瀏覽器擴充套件安全責任歸屬不同於 Web 應用:Web 應用可依賴瀏覽器的同源政策、Cookie 屬性等防護,而擴充套件的安全規則須由開發者自行在 manifest.json 中定義,因此防護設定常被遺漏。
- 2
iframe 型攻擊利用 Web Accessible Resources 配置錯誤:若擴充套件的 manifest v2 未設定 matches 白名單,攻擊者可跨域載入其 UI 頁面至透明 iframe,讓使用者在不知情下操作擴充套件介面,NordPass 即因此被用四次點擊共享所有密碼項目給攻擊者。
- 3
DOM 型攻擊操控注入頁面的 UI 元件,可細分為根元素、子元素、父元素(body/HTML)與疊加層等多種子類:攻擊腳本建立偽裝的侵入式元素(如 cookie 橫幅),同時創建透明表單觸發密碼管理器的手動自動填充下拉選單,使用者點擊「接受 cookie」時實際上選取了憑證。
- 4
子網域自動填充預設行為擴大攻擊面:所有測試的密碼管理器預設允許跨子網域自動填充,若攻擊者在受信任主域的任一子網域上發現 XSS 漏洞,即可結合此技術竊取主域憑證與 TOTP 一次性驗證碼。
- 5
--
實用技巧與重點
乾貨- 具體數字與成果
- 測試密碼管理器總數:11 款
- 存在信用卡/個人資料洩漏漏洞:10 款(2 款有防護)
- 存在登入憑證洩漏漏洞:10 款(僅 Dashlane 有防護,但預設仍為自動填充)
- FIDO2/Passkey 相關測試:7 個解決方案中 4 個存在 Challenge 未綁定 Session 漏洞
- NordPass 賞金:$10,000 USD
- 披露時估計受影響活躍安裝數:約 4,000 萬個
- 攻擊所需使用者點擊次數:1–4 次
- 已修復的密碼管理器
- NordPass、Proton Pass、RoboForm、Dashlane、Keeper
- 仍存在漏洞的密碼管理器(截至演講日)
- Bitwarden、1Password(以及 iCloud Passwords 在部分攻擊類型上)
- 工具、技術名稱
- Popover API(將攻擊元素置於最上層,pointer-events: none 穿透點擊)
- Mutation Observer API(可用於防禦:偵測擴充套件元素樣式被竄改)
- Shadow DOM(closed shadow root 可作為防禦手段)
- pointer-events: none(繞過 Z-index 限制實現完全覆蓋攻擊)
- Web Accessible Resources(manifest.json 中需設定 matches 白名單)
- 攻擊步驟(DOM 型完整流程)
- 建立偽裝侵入式元素(cookie 橫幅等)並套用 Popover API
- 建立透明表單(login/個人資料/信用卡欄位),設定 opacity: 0
- 對表單 input 執行 focus(),觸發密碼管理器自動填充下拉選單
- 偵測 onchange 事件,擷取填入值
- 收到最後一個欄位值後傳送至攻擊者伺服器,隱藏所有元素
- 緩解建議(使用者端)
- 停用手動自動填充,改用複製貼上
- 設定擴充套件為「僅點擊時存取網站」(Chromium 瀏覽器)
- 精確設定自動填充 URL(不使用子網域萬用符)
- --
結論
結論“只要網站有 DOM 注入能力或擴充套件設定不當,攻擊者就能利用普通的「接受 cookie」點擊竊走你的信用卡與帳號密碼——ClickJacking 並未消失,只是從 Web 搬到了擴充套件。”
完整解析
詳細這場演講由來自捷克共和國、擁有 7 年資安經驗的滲透測試研究員主講,核心論點是:傳統 ClickJacking 攻擊因 X-Frame-Options、CSP 與 SameSite Cookie 等防護機制已近乎失效,但瀏覽器擴充套件面對同樣的攻擊手法時卻大量暴露。原因在於 Web 應用可仰賴瀏覽器提供同源策略等底層防護,而擴充套件的安全規則須開發者自行定義於 manifest.json 中,一旦配置錯誤便無從補救。
研究員將攻擊分為兩大類。iframe 型:若擴充套件在 manifest v2 的 Web Accessible Resources 中未限制 matches 白名單,攻擊者可跨域將擴充套件的 HTML 介面載入透明 iframe(opacity: 0),讓使用者在不知情下與之互動。以 NordPass 為例,研究員在 2023 年 12 月發現其 app.html 可被任意網域載入,透過四次點擊(利用 CAPTCHA 拼圖互動)即可將受害者帳戶下的所有密碼項目(含信用卡、個人資料、登入密碼)共享給攻擊者,且受害者全程無任何通知,此漏洞最終獲得 $10,000 美元賞金。
DOM 型的手法更為廣泛且難以防禦。密碼管理器會將下拉填充選單注入至頁面 DOM,攻擊者可透過多種方式操控其可見性:直接修改根元素 opacity、修改子元素或 Shadow DOM 節點、將透明度設定在 body 或 html 層級(後者可搭配背景截圖偽裝成正常頁面),或利用 Popover API 將攻擊元素置於最頂層並搭配 `pointer-events: none` 使點擊穿透至下方的擴充套件 UI。攻擊腳本的標準流程是:建立偽裝的 cookie 橫幅或 Cloudflare 驗證頁面,同步創建透明的個人資料或信用卡表單並觸發 focus(),使密碼管理器自動填充選單出現;使用者以為在點擊「接受 cookie」,實際上卻選取了密碼管理器的憑證項目,資料隨即被傳送至攻擊者伺服器。研究員亦示範了「跟隨滑鼠游標」模式,使填充選單始終跟著游標移動,令網站上任意一次點擊皆可觸發資料洩漏。
測試結果顯示,11 款密碼管理器中 10 款存在信用卡或個人資料洩漏漏洞,8 款可被直接利用;在登入憑證竊取場景下(需搭配 XSS 等漏洞),僅 Dashlane 預設有防護。研究員指出所有密碼管理器預設均允許跨子網域自動填充,這代表若攻擊者在任一受信任子網域發現 XSS,即可一併竊取主域憑證與 TOTP 驗證碼。此外,Passkey 實作測試中亦有 4/7 的解決方案因 Challenge 未綁定 Session,可能遭攻擊者劫持身份驗證流程、新增惡意裝置取得持久存取。截至演講當日,Bitwarden 與 1Password 仍存在漏洞,受影響活躍安裝數估計達 4,000 萬。防禦方面,開發者需使用 Mutation Observer、closed shadow root 等 API 主動偵測樣式竄改,但現有瀏覽器 API 尚無法完整涵蓋所有攻擊向量,研究員建議可能需要新的瀏覽器層級 API 才能根本解決。
---
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

