Adblock Plus 中的漏洞允許在使用可疑過濾器時執行程式碼

在 Adblock Plus 廣告攔截器中 已確定 脆弱性, 允許 在使用攻擊者準備的未經驗證的過濾器的情況下(例如,在連接第三方規則集或在 MITM 攻擊期間替換規則時),在網站上下文中組織 JavaScript 程式碼的執行。

具有過濾器集的列表的作者可以通過使用運算符添加規則來在用戶打開的站點上下文中組織其代碼的執行”改寫”,它允許您替換部分 URL。 重寫運算子不允許您取代 URL 中的主機,但它允許您自由操作請求參數。 只能使用文字作為替換掩碼,並且允許替換腳本、物件和子文檔標籤 被阻止.

但是,可以透過解決方法來實現程式碼執行。
一些網站,包括 Google 地圖、Gmail 和 Google 圖片,使用動態載入可執行 JavaScript 區塊的技術,以純文字的形式傳輸。 如果伺服器允許請求重定向,那麼可以透過改變URL參數來實現轉發到另一個主機(例如,在Google的上下文中,可以透過API進行重定向“google.com/搜尋”)。 除了允許重定向的主機之外,還可以針對允許發布使用者內容的服務(程式碼託管、文章發布平台等)進行攻擊。

所提出的攻擊方法僅影響動態載入 JavaScript 程式碼字串(例如,透過 XMLHttpRequest 或 Fetch)然後執行它們的頁面。 另一個重要的限制是需要使用重定向或將任意資料放置在發出資源的原始伺服器一側。 然而,為了證明攻擊的相關性,我們展示瞭如何在開啟maps.google.com時使用透過「google.com/search」的重定向來組織程式碼的執行。

修復工作仍在準備中。 這個問題也會影響攔截器 的AdBlock и uBlock。 uBlock Origin 攔截器不受該問題的影響,因為它不支援「重寫」運算子。 曾任 uBlock Origin 的作者
拒絕 添加對重寫的支持,指出潛在的安全問題和主機級限制不足(提出了 querystrip 選項而不是重寫來清理查詢參數而不是替換它們)。

Adblock Plus 開發人員認為真正的攻擊不太可能,因為標準規則清單的所有變更都會經過審查,並且在使用者中連接第三方清單的情況極為罕見。 預設使用 HTTPS 下載標準阻止列表會阻止透過 MITM 替換規則(對於其他列表,計劃在未來版本中禁止透過 HTTP 下載)。 指令可用於阻止網站側的攻擊 CSP (內容安全策略),透過它可以明確確定可以載入外部資源的主機。

來源: opennet.ru

添加評論