„Adblock Plus“ filtras naudojamas norint paleisti pasirinktą kodą

Daugelis turinio blokatorių naudoja ir įkelia filtrų sąrašus, kuriuose yra instrukcijos, kaip pagal nutylėjimą blokuoti ar pakeisti tam tikrą turinį lankomose svetainėse žiniatinklio naršyklėje; tai daroma siekiant užtikrinti, kad numatytosios konfigūracijos iškart blokuotų didelę dalį nepageidaujamo turinio.

Daugelis plėtinių palaiko pasirinktinius sąrašus ir atskirus filtrus. Naudotojai gali įkelti pasirinktinius sąrašus daugelyje plėtinių ir į sąrašą įtraukti ir savo filtrus.

Atnaujinimas : „Eyeo GMHB“ šiandien paskelbė, kad pašalins $ rewrite funkciją. Greitai tikėkitės naujo leidimo, kuris pašalinamas iš plėtinio. Pabaiga

Saugumo tyrinėtojas Arminas Sebastianas aptiko tam tikrų reklamos blokatorių, tokių kaip „Adblock Plus“, išnaudojimą, kuris galėjo būti naudojamas paleisti kenksmingą kodą naršyklėje lankomose svetainėse.

Išnaudojimas naudoja filtro parinktį, vadinamą $ rewrite, kurią palaiko „Adblock Plus“, kad į interneto puslapius būtų įleidžiamas savavališkas kodas. $ Perrašymo filtras naudojamas norint pakeisti kodą svetainėse jį perrašant. Filtro parinktis riboja operaciją; jis skirtas įkelti turinį tik iš pirmosios šalies šaltinio, o ne iš trečiųjų šalių svetainių ar serverių, o kai kurios užklausos, pvz., scenarijus ar objektas, taip pat neleidžiamos.

Sebastianas aptiko pažeidžiamą perrašymą $, kurį užpuolikai gali išnaudoti norėdami įkelti turinį iš atokių vietų. Sąlygos, kurias reikia įvykdyti, yra šios:

  1. „JavaScript“ eilutė turi būti įkelta naudojant „XMLHttpRequest“ arba „Fetch“, o grįžimo kodas turi būti įvykdytas.
  2. Šaltinis negali būti ribojamas puslapyje, pvz., Naudojant Turinio saugumo politikos direktyvas, o galutinio užklausos URL negali būti patvirtintas prieš vykdant.
  3. Kodo kilmė turi būti atvira peradresavimo iš serverio pusės arba jame turi būti priglobtas savavališkas vartotojo turinys.

Ypatybės, kurios atitinka visus tris reikalavimus, yra „Google Maps“, „Gmail“ ar „Google“ vaizdai. Sąvokos įrodymas buvo paskelbtas autoriaus svetainėje. Galite išbandyti jį „Google Maps“ ir patikrinti, ar jis veikia.

Išbandžiau išnaudojimą „Chrome“ ir „Firefox“ ir negalėjau jo pritaikyti. Vis dėlto Lawrence'ui Abramsui „Bleeping Computer“ pavyko jį įjungti.

Uždarymo žodžiai

Ataka turi dar vieną reikalavimą, nes ji remiasi filtrais. Į filtrų, kuriuos naudoja turinio blokatorius, sąrašą reikia įtraukti manipuliuotą filtrą. Dvi dažniausiai pasitaikančios parinktys yra tai, kad vartotojai filtrus prideda rankiniu būdu prie savo turinio blokatorių arba kad manipuliuotas filtras yra filtrų sąraše, kuris įkeliamas.

Antrasis variantas atrodo labiau tikėtinas, ypač tais atvejais, kai vartotojai plėtiniuose įkelia kitus sąrašus. Ne pirmą kartą manipuliuojama sąrašais, tačiau taip nėra dažnai.

Plėtiniui „uBlock Origin“ problema nedaro įtakos, nes jis nepalaiko $ perrašymo.