Využitie filtra Adblock Plus na spustenie objavenia ľubovoľného kódu

Väčšina blokátorov obsahu používa a načítava zoznamy filtrov, ktoré obsahujú pokyny na blokovanie alebo zmenu určitého obsahu na navštívených stránkach vo webovom prehliadači v predvolenom nastavení; to sa vykonáva preto, aby sa zabezpečilo, že predvolené konfigurácie okamžite zablokujú dobrý kus nežiaduceho obsahu.

Väčšina rozšírení podporuje vlastné zoznamy a jednotlivé filtre. Používatelia môžu vo väčšine rozšírení načítať vlastné zoznamy a do zoznamu pridať aj vlastné filtre.

Aktualizácia : Spoločnosť Eyeo GMHB dnes oznámila, že v budúcnosti odstráni funkciu prepisovania $. Očakávajte nové vydanie čoskoro bude odstránené z rozšírenia. Koniec

Výskumník bezpečnosti Armin Sebastian objavil zneužitie v niektorých adblockeroch, ako je Adblock Plus, ktoré by mohli byť použité na spustenie škodlivého kódu na stránkach navštívených v prehliadači.

Využitie využíva možnosť filtra nazvanú $ prepísať, ktorú Adblock Plus podporuje na vloženie ľubovoľného kódu na webové stránky. Filter na prepísanie $ sa používa na nahradenie kódu na stránkach jeho prepisom. Voľba filtra obmedzuje činnosť; je určený na načítanie obsahu iba zo zdrojov alebo serverov tretích strán a nie tretích strán a serverov, a niektoré požiadavky, napríklad skript alebo objekt, nie sú tiež povolené.

Sebastian objavil chybu v prepisovaní $, ktorú môžu útočníci zneužiť na načítanie obsahu zo vzdialených miest. Podmienky, ktoré musia byť splnené, sú:

  1. Reťazec JavaScript sa musí načítať pomocou XMLHttpRequest alebo Fetch a musí sa vykonať návratový kód.
  2. Pôvody nie je možné na stránke obmedziť, napríklad pomocou smerníc pre zabezpečenie obsahu a webovú adresu konečnej žiadosti nie je možné pred spustením overiť.
  3. Pôvod kódu musí mať otvorené presmerovanie na strane servera alebo musí byť hostiteľom svojvoľného obsahu používateľa.

Medzi vlastnosti, ktoré spĺňajú všetky tri požiadavky, patria okrem iného Mapy Google, Gmail alebo Obrázky Google. Na webovej stránke autora bol zverejnený dôkaz koncepcie a môžete si ho vyskúšať na Mapách Google, aby ste si overili, či funguje.

Vyskúšal som zneužitie v prehliadačoch Chrome a Firefox a nemohol som ho uviesť do prevádzky. Lawrence Abrams na Bleeping Computer sa jej však podaril.

Záverečné slová

Útok má ďalšiu požiadavku, pretože sa spolieha na filtre. Do zoznamu filtrov používaných blokátorom obsahu je potrebné pridať manipulovaný filter. Medzi dve najbežnejšie možnosti patria používatelia, ktorí manuálne pridávajú filtre do svojich blokátorov obsahu, alebo že sa manipulovaný filter nachádza v zozname filtrov, ktorý sa načíta.

Druhá možnosť sa zdá byť pravdepodobnejšia, najmä v prípadoch, keď používatelia načítajú ďalšie zoznamy v rozšíreniach. Zoznamy nie sú prvýkrát manipulované, ale nestáva sa to veľmi často.

Prípona uBlock Origin nie je týmto problémom ovplyvnená, pretože nepodporuje prepísanie $.