„Adblock Plus“ sąrašų pažeidžiamumas leidžia vykdyti kenkėjišką kodą

naršyklė

Įtraukta Pastaruoju metu buvo aptiktas pažeidžiamumas tai galėtų leisti prižiūrėtojams blokuoti filtrų sąrašus skirta „Adblock Plus“, „AdBlock“ ir „uBlocker“ naršyklių plėtiniams sukurti filtrus, kurie į svetaines įterpia nuotolinius scenarijus.

Naudotojų bazė, perkopusi 10 milijonų ribą, jei į skelbimų blokatorius būtų švirkščiami kenkėjiški scenarijai, tai turėtų didelę įtaką nes jie gali vykdyti nepageidaujamą veiklą, pvz., slapukų vagystę, informaciją apie ryšį, sukelti puslapių nukreipimus ar kitokį nepageidaujamą elgesį.

Tiems, kurie nėra susipažinę su skelbimų blokatoriais, jie iš esmės naudoja URL sąrašus susijusių su kenkėjiškomis reklamomis ir elgesiu.

Paprastai Jiems vadovauja nedidelė žmonių komanda ar net vienas asmuo.

Kai šiuose sąrašuose yra skelbimų blokavimo plėtinys, pvz., „Adblock Plus“, šis plėtinys neleis naršyklei prisijungti prie į sąrašą įtrauktų URL ir tokiu būdu neleis prisijungti prie kenkėjiškų skelbimų ar scenarijų.

Filmo parinktis $ perrašyti sukelia problemą

Kai „Adblocker Plus“ 3.2 paleista 2018 m., tai pridėjo naują filtrų sąrašo parinktį, pavadintą $ perrašyti.

Ši parinktis leidžiama sąrašo tvarkytojui pakeisti žiniatinklio užklausą, atitinkančią įprastą išraišką ypač su kitu URL.

Hubertas Figuière'as, kas įvedė šią funkciją, paaiškino, kad:

„Kadangi„ Adblock Plus 3.2 “skirta„ Chrome “,„ Firefox “ir„ Opera “(ir 3.1.0.2053 kūrimo versijoms), nauja filtro„ $ perrašyti “parinktis leidžia perrašyti ištekliaus URL, užuot jį blokavus.

Kai „Adblock Plus“ priskiria užklausos URL filtrui su parinktimi $ perrašyti, jis pakeičia URL pagal pateiktą taisyklę ir nurodo naršyklei tuo pačiu metu įkelti išteklių.

$ Taisyklės sintaksė perrašyti nurodo eilutę, kuri naudojama kaip naujo URL šablonas.

$ n pakeičiamas filtro reguliariosios išraiškos n-ta daline atitiktimi. Tai yra ta pati sintaksė kaip ir „JavaScript String.prototype.replace ()“ funkcija.

Jei gautas URL yra santykinis (t. y. jūs neturite šeimininko), pirminės užklausos kilmė bus naudojama kaip pagrindas. Bet kuriuo atveju, jei naujasis URL nesidalija kilme, perrašymas bus laikomas nesėkmingu ir pradinė užklausa bus perduota.

Be to, saugumo sumetimais, perrašant filtrus $ nepaisoma SCRIPT, SUBDOCUMENT, OBJECT ir OBJECT_SUBREQUEST užklausų. Ši parinktis yra patogi modifikuoti ar pašalinti užklausos parametrus ».

Vienintelis trūkumas yra tas, kad pakaitinė eilutė turi būti santykinis URL, o tai reiškia, kad joje nėra pagrindinio kompiuterio pavadinimo, o perrašius ji turi priklausyti tam pačiam kilmės domenui kaip ir užklausa.

Kodo vykdymas atliekamas net „Google Maps“

Saugumo tyrėjas paaiškino kad:

Esant tam tikroms sąlygoms, neteisėtas kenkėjiškų filtrų tvarkytojas gali sukurti taisyklę, įvedančią nuotolinį scenarijų į tam tikrą svetainę.

Norėdami tai padaryti, tiesiog ieškokite svetainės, įkeliančios scenarijus iš bet kurio domeno, kuriame yra atviras peradresavimas ir naudokite XMLHttpRequest arba Fetch atsisiųsti scenarijus paleisti.

Tai nebuvo per sunku rasti, nes tai padaryti vienam tiesiog naudokite „Google Maps“ kaip koncepcijos įrodymą.

Tyrėjas tai paaiškino turi būti įvykdyti šie kriterijai kad žiniatinklio paslauga būtų galima pasinaudoti šiuo metodu:

  • Puslapis turi įkelti JS eilutę naudodamas XMLHttpRequest arba Fetch ir įvykdyti grąžinimo kodą.
  • Puslapis neturėtų apriboti šaltinių, iš kurių jį galima gauti naudojant turinio saugos politikos gaires, arba patvirtinti galutinį užklausos URL prieš paleidžiant atsisiunčiamą kodą.
  • Gauto kodo šaltinis turi turėti atvirą serverio pusės peradresavimą arba savavališką pagrindinio kompiuterio vartotojo turinį.

XMLHttpRequest arba Fetch naudojimas norint atsisiųsti scenarijus ir atidaryti peradresavimą yra du šios problemos raktai.

Norėdami sušvelninti šią problemą, svetainėms rekomenduojama naudoti turinio saugumo politikos antraštę ir „connect-src“ parinktį nurodyti baltąjį sąrašą svetainių, iš kurių galima įkelti scenarijus.


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Už duomenis atsakingas: AB Internet Networks 2008 SL
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.