Filtru Adblock Plus exploit pentru a rula codul arbitrar descoperit

Majoritatea blocanților de conținut utilizează și încarcă liste de filtre care includ instrucțiuni pentru a bloca sau modifica anumite conținut pe site-urile vizitate din browserul web în mod implicit; acest lucru este făcut pentru a vă asigura că configurațiile implicite blochează imediat o bucată bună de conținut nedorit.

Majoritatea extensiilor acceptă liste personalizate și filtre individuale. Utilizatorii pot încărca liste personalizate în majoritatea extensiilor și pot adăuga și propriile filtre la listă.

Update : Eyeo GMHB a anunțat astăzi că va elimina funcția $ rescriere care va continua. Așteptați-vă curând la o nouă versiune care va fi eliminată din extensie. Sfârșit

Cercetătorul de securitate Armin Sebastian a descoperit o exploatare în anumiți adblockeri, precum Adblock Plus, care ar putea fi utilizată pentru a rula coduri rău intenționate pe site-urile vizitate în browser.

Exploit-ul folosește o opțiune de filtru numită $ rescriere pe care Adblock Plus o acceptă pentru a injecta cod arbitrar în paginile web. Filtrul $ rescriere este folosit pentru a înlocui codul pe site-uri, prin rescrierea acestuia. Opțiunea de filtrare restricționează funcționarea; este proiectat pentru a încărca conținut numai de la sursa de la prima parte și nu de pe site-uri sau servere terțe, iar unele solicitări, de exemplu script sau obiect, nu sunt permise.

Sebastian a descoperit o vulnerabilitate în $ rescrierea pe care atacatorii o pot exploata pentru a încărca conținut din locații îndepărtate. Condițiile care trebuie îndeplinite sunt:

  1. Un șir JavaScript trebuie să fie încărcat folosind XMLHttpRequest sau Fetch, iar codul de retur trebuie executat.
  2. Originea nu poate fi restricționată pe pagină, de exemplu, utilizând directivele privind politica de securitate a conținutului, iar adresa URL a cererii finale nu poate fi validată înainte de execuție.
  3. Originea codului trebuie să aibă o redirecționare deschisă din partea serverului sau trebuie să găzduiască conținut arbitrar de utilizator.

Proprietățile care corespund celor trei cerințe includ Google Maps, Gmail sau Google Images, printre altele. O dovadă a conceptului a fost publicată pe site-ul web al autorului și puteți încerca pe Google Maps pentru a verifica dacă funcționează.

Am încercat exploit-ul în Chrome și Firefox și nu am putut să-l fac să funcționeze. Cu toate acestea, Lawrence Abrams pe Bleeping Computer a reușit să funcționeze.

Cuvinte de închidere

Atacul are o altă cerință, întrucât se bazează pe filtre. Un filtru manipulat trebuie adăugat la lista de filtre utilizate de blocantul de conținut. Cele mai frecvente două opțiuni includ utilizatorii care adaugă filtrele manual la blocantele de conținut sau că un filtru manipulat se află pe o listă de filtre care este încărcată.

A doua opțiune pare mai probabilă, mai ales în cazurile în care utilizatorii încarcă alte liste în extensii. Nu este prima dată când listele sunt manipulate, dar nu se întâmplă foarte des.

Extensia uBlock Origin nu este afectată de problemă, deoarece nu suportă $ rescrierea.