äskettäin haavoittuvuus on havaittu mikä voisi antaa ylläpitäjien estää suodatinluettelot Adblock Plus-, AdBlock- ja uBlocker-selainlaajennuksiin luoda suodattimia, jotka injektoivat etäkomentosarjoja verkkosivustoille.
10 miljoonan rajan ylittäneellä käyttäjäkunnalla jos haitallisia komentosarjoja injektoidaan mainosten estäjiin, sillä olisi huomattava vaikutus koska he voivat suorittaa ei-toivottuja toimintoja, kuten evästeiden, yhteystietojen varastamista, aiheuttaa sivujen uudelleenohjauksia tai muuta ei-toivottua toimintaa.
Heille jotka eivät tunne mainosten estäjiä, he käyttävät periaatteessa URL-luetteloita liittyvät haitallisiin mainoksiin ja käyttäytymiseen.
yleensä Niitä johtaa pieni joukko ihmisiä tai jopa yksi henkilö.
Kun nämä luettelot ladataan mainosten estolaajennuksella, kuten Adblock Plus, tämä laajennus estää selainta muodostamasta yhteyttä luetteloon lisättyihin URL-osoitteisiin, mikä estää yhteyden muodostamisen haitallisiin mainoksiin tai komentosarjoihin.
Suodatinvaihtoehto $ rewrite aiheuttaa ongelman
Kun AdblockerPlus 3.2 käynnistettiin vuonna 2018, se lisäsi uuden suodatinluettelovaihtoehdon nimeltä $ rewrite.
Tämä vaihtoehto sallittu luettelon ylläpitäjälle korvaa verkkopyyntö, joka vastaa säännöllistä lauseketta erityisesti toisella URL-osoitteella.
Hubert Figuiere, kuka esitteli tämän toiminnon, selitti, että:
"Adblock Plus 3.2: n Chrome-, Firefox- ja Opera-versioista (ja 3.1.0.2053 -kehitysversioista) lähtien uusi $ kirjoita suodatin -vaihtoehto antaa sinun kirjoittaa uudelleen resurssin URL-osoite estämisen sijaan.
Kun Adblock Plus määrittää pyynnön URL-osoitteen suodattimelle $ rewrite -vaihtoehdolla, se muuntaa URL-osoitteen annetun säännön perusteella ja kehottaa selainta lataamaan resurssin samanaikaisesti.
$-Säännön syntaksi uudelleenkirjoittaminen määrittää merkkijonon, joka toimii mallina uudelle URL-osoitteelle.
$ n korvataan suodattimen säännöllisellä lausekkeella n. osavastaavuus. Tämä on sama syntaksi kuin JavaScript String.prototype.replace () -toiminto.
Jos tuloksena oleva URL on suhteellinen (ts. sinulla ei ole isäntää), alkuperäisen kyselyn alkuperää käytetään perustana. Kummassakin tapauksessa, jos uusi URL-osoite ei jaa alkuperää, uudelleenkirjoittaminen katsotaan epäonnistuneeksi ja alkuperäinen pyyntö hyväksytään.
Myös $ uudelleenkirjoitussuodattimet jätetään huomioimatta SCRIPT-, SUBDOCUMENT-, OBJECT- ja OBJECT_SUBREQUEST-kyselyissä turvallisuussyistä. Tämä vaihtoehto on kätevä muokkaamaan tai poistamaan kyselyparametreja ».
Ainoa haittapuoli on, että korvaavan merkkijonon on oltava suhteellinen URL, mikä tarkoittaa, että se ei sisällä isäntänimeä, ja uudelleenkirjoitettaessa sen on oltava samasta lähdetunnuksesta kuin pyyntö.
Koodin suoritus tehdään jopa Google Mapsissa
Turvallisuustutkija selitti että:
Tietyissä olosuhteissa luvaton haittaohjelmien ylläpitäjä voi luoda säännön, joka syöttää etäkomentosarjan tiettyyn sivustoon.
Voit tehdä tämän etsi vain sivusto, joka lataa komentosarjoja mistä tahansa verkkotunnuksesta, joka sisältää avoimen uudelleenohjauksen ja käytä XMLHttpRequest tai Fetch ladata komentosarjat suoritettavaksi.
Se ei ollut liian vaikea löytää, koska tehdä tämä yksin käytä vain Google Mapsia todisteena konseptista.
Tutkija selitti sen seuraavien kriteerien on täytyttävä jotta verkkopalvelua voidaan hyödyntää tällä menetelmällä:
- Sivun on ladattava JS-merkkijono XMLHttpRequest- tai Fetch-toiminnolla ja suoritettava palautuskoodi.
- Sivun ei tulisi rajoittaa lähteitä, joista se voidaan hakea sisältöturvakäytäntöohjeiden avulla, tai vahvistaa lopullisen pyynnön URL-osoitteen ennen ladatun koodin suorittamista.
- Haetun koodin lähteessä on oltava avoin palvelinpuolen uudelleenohjaus tai mielivaltainen käyttäjän sisältö isännältä.
XMLHttpRequest- tai Fetch-ohjelmien käyttäminen komentosarjojen lataamiseen ja uudelleenohjauksen avaamiseen ovat ongelman kaksi avainta.
Tämän ongelman lieventämiseksi On suositeltavaa, että verkkosivustot käyttävät sisältöturvakäytännön otsikkoa ja connect-src -vaihtoehtoa määrittää sallittujen luettelo sivustoista, joista komentosarjat voidaan ladata.