Ranjivost u Adblocku Plus koja dopušta izvršavanje koda pri korištenju upitnih filtera

U Adblock Plus blokatoru oglasa identificiran ranjivost, dopuštajući organizirati izvršavanje JavaScript koda u kontekstu web-mjesta, u slučaju korištenja neprovjerenih filtara koje su pripremili napadači (na primjer, pri povezivanju skupova pravila treće strane ili kroz zamjenu pravila tijekom MITM napada).

Autori popisa sa skupovima filtara mogu organizirati izvršavanje svog koda u kontekstu stranica koje otvara korisnik dodavanjem pravila s operatorom "prepisati", koji vam omogućuje da zamijenite dio URL-a. Operator prepisivanja ne dopušta vam da zamijenite host u URL-u, ali vam dopušta da slobodno manipulirate argumentima zahtjeva. Kao zamjenska maska ​​može se koristiti samo tekst, a dopuštena je zamjena oznaka skripte, objekta i poddokumenta blokiran.

Međutim, izvršenje koda može se postići zaobilaznim rješenjem.
Neka mjesta, uključujući Google karte, Gmail i Google slike, koriste tehniku ​​dinamičkog učitavanja izvršnih JavaScript blokova, koji se prenose u obliku golog teksta. Ako poslužitelj dopušta preusmjeravanje zahtjeva, prosljeđivanje na drugi host može se postići promjenom parametara URL-a (na primjer, u kontekstu Googlea, preusmjeravanje se može izvršiti putem API-ja "google.com/search"). Osim hostova koji dopuštaju preusmjeravanje, napad se može izvršiti i na servise koji dopuštaju objavu korisničkog sadržaja (hosting koda, platforme za objavu članaka itd.).

Predložena metoda napada utječe samo na stranice koje dinamički učitavaju nizove JavaScript koda (na primjer, putem XMLHttpRequest ili Fetch) i zatim ih izvršavaju. Još jedno važno ograničenje je potreba korištenja preusmjeravanja ili postavljanja proizvoljnih podataka na stranu izvornog poslužitelja koji izdaje resurs. Međutim, kako bi se demonstrirala relevantnost napada, prikazano je kako organizirati izvršavanje vašeg koda prilikom otvaranja maps.google.com, koristeći preusmjeravanje preko “google.com/search”.

Popravak je još u pripremi. Problem također utječe na blokatore AdBlock и uBlock. Problem ne utječe na uBlock Origin blocker jer ne podržava operator "rewrite". Svojedobno autor uBlock Origin
otkazalsâ dodajte podršku za ponovno pisanje, navodeći potencijalne sigurnosne probleme i nedovoljna ograničenja na razini glavnog računala (predložena je opcija querystrip umjesto ponovnog pisanja za čišćenje parametara upita umjesto njihove zamjene).

Programeri Adblock Plusa smatraju da su pravi napadi malo vjerojatni, budući da se sve promjene standardnih popisa pravila pregledavaju, a povezivanje popisa trećih strana iznimno je rijetko među korisnicima. Zamjena pravila putem MITM-a spriječena je zadanom upotrebom HTTPS-a za preuzimanje standardnih popisa blokiranih (za ostale popise planira se zabraniti preuzimanje putem HTTP-a u budućem izdanju). Naredbe se mogu koristiti za blokiranje napada na strani stranice CSP (Content Security Policy), putem koje možete eksplicitno odrediti hostove s kojih se vanjski resursi mogu učitavati.

Izvor: opennet.ru

Dodajte komentar