Filtr Adblock Plus využívá ke spuštění objeveného libovolného kódu

Většina blokátorů obsahu používá a načítá seznamy filtrů, které obsahují pokyny k blokování nebo změně určitého obsahu na navštívených webech ve webovém prohlížeči ve výchozím nastavení; to se provádí, aby se zajistilo, že výchozí konfigurace okamžitě zablokuje dobrý kus nežádoucího obsahu.

Většina rozšíření podporuje vlastní seznamy a jednotlivé filtry. Uživatelé mohou ve většině rozšíření načítat vlastní seznamy a do seznamu také přidávat vlastní filtry.

Aktualizace : Společnost Eyeo GMHB dnes oznámila, že v budoucnu odstraní funkci přepisování $. Očekávejte nové vydání brzy, které se odstraní, pokud z rozšíření. Konec

Výzkumník bezpečnosti Armin Sebastian objevil exploit v určitých adblockerech, jako je Adblock Plus, které by mohly být použity ke spuštění škodlivého kódu na stránkách navštívených v prohlížeči.

Využití využívá možnost filtru nazvanou $ přepsat, kterou Adblock Plus podporuje pro vkládání libovolného kódu na webové stránky. Filtr přepisu $ se používá k nahrazení kódu na webech přepsáním. Možnost filtru omezuje provoz; je navržen tak, aby načítal obsah pouze ze zdrojů první strany a nikoli ze serverů nebo serverů třetích stran, a některé požadavky, např. skript nebo objekt, nejsou rovněž povoleny.

Sebastian objevil chybu v přepisu $, kterou mohou útočníci zneužít k načtení obsahu ze vzdálených míst. Podmínky, které musí být splněny, jsou:

  1. Řetězec JavaScript musí být načten pomocí XMLHttpRequest nebo Fetch a musí být spuštěn návratový kód.
  2. Původy nelze na stránce omezit, např. Pomocí směrnic o zásadách zabezpečení obsahu a adresu URL konečné žádosti nelze před provedením ověřit.
  3. Původ kódu musí mít přesměrování otevřené na serveru nebo musí hostovat libovolný uživatelský obsah.

Mezi vlastnosti, které splňují všechny tři požadavky, patří mimo jiné Mapy Google, Gmail nebo Obrázky Google. Na webových stránkách autora byl zveřejněn důkaz o konceptu a můžete jej vyzkoušet v Mapách Google, abyste si ověřili, že funguje.

Vyzkoušel jsem zneužití v Chromu a Firefoxu a nemohl jsem ho uvést do chodu. Lawrence Abrams na Bleeping Computer se však podařilo dostat to do práce.

Závěrečná slova

Útok má další požadavek, protože se spoléhá na filtry. Do seznamu filtrů používaných blokátorem obsahu je třeba přidat manipulovaný filtr. Mezi dvě nejčastější možnosti patří uživatelé, kteří přidávají filtry ručně do svých blokátorů obsahu, nebo že manipulovaný filtr je na seznamu filtrů, který se načte.

Druhá možnost se zdá pravděpodobnější, zejména v případech, kdy uživatelé načtou další seznamy v rozšířeních. Seznamy nejsou poprvé zmanipulovány, ale nestává se to příliš často.

Rozšíření uBlock Origin není problémem ovlivněno, protože nepodporuje přepisování $.