Adblock Plus-filterudnyttelse til at køre vilkårlig kode opdaget

De fleste indholdsblokkere bruger og indlæser filterlister, der inkluderer instruktioner til at blokere eller ændre bestemt indhold på besøgte sider i webbrowseren som standard; Dette gøres for at sikre, at standardkonfigurationer blokerer for en god del af uønsket indhold med det samme.

De fleste udvidelser understøtter tilpassede lister og individuelle filtre. Brugere kan indlæse tilpassede lister i de fleste udvidelser og tilføje deres egne filtre også til listen.

Opdatering : Eyeo GMHB annoncerede i dag, at det vil fjerne $ omskrivningsfunktionen fremover. Forvent snart en ny udgivelse, der fjernes hvis fra udvidelsen. Ende

Sikkerhedsforsker Armin Sebastian opdagede en udnyttelse i visse adblockere, såsom Adblock Plus, der kunne bruges til at køre ondsindet kode på websteder, der er besøgt i browseren.

Udnyttelsen bruger en filterindstilling kaldet $ omskrive, som Adblock Plus understøtter til at injicere vilkårlig kode på websider. $ Omskrivningsfilteret bruges til at erstatte kode på sider ved at omskrive det. Filterindstillingen begrænser handlingen. det er designet til kun at indlæse indhold fra førstepartskilden og ikke fra tredjepartswebsteder eller servere, og nogle anmodninger, f.eks. script eller objekt, er heller ikke tilladt.

Sebastian opdagede en sårbarhed i $ omskrivning, som angribere muligvis udnytter til at indlæse indhold fra fjerne placeringer. Betingelserne, der skal opfyldes, er:

  1. En JavaScript-streng skal indlæses vha. XMLHttpRequest eller Fetch, og returkoden skal udføres.
  2. Oprindelser kan ikke begrænses på siden, f.eks. Ved hjælp af direktiver om indholdssikkerhedspolitik, og den endelige anmodnings-URL kan ikke valideres før udførelse.
  3. Kodenes oprindelse skal have en åben omdirigering på serversiden eller være vært for vilkårligt brugerindhold.

Egenskaber, der svarer til alle tre krav, inkluderer blandt andet Google Maps, Gmail eller Google Images. Et bevis på koncept blev offentliggjort på forfatterens websted, og du kan prøve det på Google Maps for at bekræfte, at det fungerer.

Jeg prøvede udnyttelsen i Chrome og Firefox og kunne ikke få den til at fungere. Lawrence Abrams over på Bleeping Computer formåede dog at få det til at fungere.

Lukende ord

Angrebet har et andet krav, da det er afhængig af filtre. Et manipuleret filter skal tilføjes til listen over filtre, der bruges af indholdsblokken. De to mest almindelige indstillinger inkluderer brugere, der tilføjer filtre manuelt til deres indholdsblokkere, eller at et manipuleret filter er på en filterliste, der bliver indlæst.

Den anden mulighed synes mere sandsynlig, især i tilfælde, hvor brugere indlæste andre lister i udvidelserne. Det er ikke første gang, at lister manipuleres, men det sker ikke meget ofte.

Udvidelsen uBlock Origin påvirkes ikke af problemet, da det ikke understøtter $ omskrivning.