Exploit filtru Adblock Plus umożliwiający uruchomienie dowolnego wykrytego kodu
- Kategoria: Internet
Większość programów do blokowania treści używa i wczytuje listy filtrów, które domyślnie zawierają instrukcje blokowania lub zmiany określonych treści w odwiedzanych witrynach w przeglądarce internetowej; Ma to na celu zapewnienie, że domyślne konfiguracje od razu blokują sporą część niechcianej zawartości.
Większość rozszerzeń obsługuje listy niestandardowe i indywidualne filtry. Użytkownicy mogą ładować listy niestandardowe w większości rozszerzeń i dodawać do nich własne filtry.
Aktualizacja : Ogłosił Eyeo GMHB dzisiaj, że usunie funkcję $ rewrite w przyszłości. Spodziewaj się wkrótce nowej wersji, która usunie if z rozszerzenia. Koniec
Badacz bezpieczeństwa Armin Sebastian odkryty exploit w niektórych adblockerach, takich jak Adblock Plus, który mógłby zostać wykorzystany do uruchomienia złośliwego kodu w witrynach odwiedzanych w przeglądarce.
Exploit wykorzystuje opcję filtra o nazwie $ rewrite, którą obsługuje Adblock Plus, aby wstrzyknąć dowolny kod na strony internetowe. Filtr $ rewrite służy do zastępowania kodu w witrynach przez przepisanie go. Opcja filtru ogranicza działanie; jest przeznaczony do ładowania treści wyłącznie z własnego źródła, a nie z witryn lub serwerów osób trzecich, a niektóre żądania, np. skrypt lub obiekt, również nie są dozwolone.
Sebastian odkrył lukę w zabezpieczeniach $ rewrite, którą atakujący mogą wykorzystać do ładowania treści ze zdalnych lokalizacji. Warunki, które należy spełnić to:
- Ciąg JavaScript należy załadować za pomocą XMLHttpRequest lub Fetch, a kod powrotu musi zostać wykonany.
- Źródła nie mogą być ograniczone na stronie, np. używając dyrektyw polityki bezpieczeństwa treści, a końcowego adresu URL żądania nie można zweryfikować przed wykonaniem.
- Źródło kodu musi mieć otwarte przekierowanie po stronie serwera lub musi zawierać dowolną zawartość użytkownika.
Usługi, które spełniają wszystkie trzy wymagania, to między innymi Mapy Google, Gmail lub Grafika Google. ZA dowód koncepcji został opublikowany na stronie autora i możesz go wypróbować na Google Maps, aby sprawdzić, czy działa.
Próbowałem exploita w przeglądarce Chrome i Firefox i nie mogłem go uruchomić. Lawrence Abrams jednak Bleeping Computer zdołał go uruchomić.
Słowa końcowe
Atak ma inne wymaganie, ponieważ opiera się na filtrach. Zmanipulowany filtr należy dodać do listy filtrów używanych przez blokadę treści. Dwie najczęstsze opcje obejmują ręczne dodawanie filtrów do swoich blokad treści lub umieszczenie zmodyfikowanego filtru na wczytywanej liście filtrów.
Druga opcja wydaje się bardziej prawdopodobna, zwłaszcza w przypadkach, gdy użytkownicy ładują inne listy w rozszerzeniach. Nie jest to pierwszy przypadek manipulacji listami, ale nie zdarza się to zbyt często.
Problem nie dotyczy rozszerzenia uBlock Origin, ponieważ nie obsługuje ono funkcji $ rewrite.