Adblock Plus-Filter-Exploit zum Ausführen von entdecktem Code

Die meisten Inhaltsblocker verwenden und laden Filterlisten, die standardmäßig Anweisungen zum Blockieren oder Ändern bestimmter Inhalte auf besuchten Websites im Webbrowser enthalten. Auf diese Weise wird sichergestellt, dass Standardkonfigurationen einen großen Teil unerwünschter Inhalte sofort blockieren.

Die meisten Erweiterungen unterstützen benutzerdefinierte Listen und einzelne Filter. Benutzer können benutzerdefinierte Listen in den meisten Erweiterungen laden und der Liste auch ihre eigenen Filter hinzufügen.

Update : Eyeo GMHB gab heute bekannt, dass es die $ rewrite-Funktion zukünftig entfernen wird. Erwarten Sie bald eine neue Version, die if von der Erweiterung entfernt. Ende

Der Sicherheitsforscher Armin Sebastian entdeckte einen Exploit bei bestimmten Adblockern wie Adblock Plus, mit dem bösartiger Code auf Websites ausgeführt werden kann, die im Browser aufgerufen wurden.

Der Exploit verwendet eine Filteroption namens $ rewrite, die Adblock Plus unterstützt, um beliebigen Code in Webseiten einzufügen. Der $ rewrite-Filter wird verwendet, um Code auf Websites durch Umschreiben zu ersetzen. Die Filteroption schränkt den Vorgang ein. Es wurde entwickelt, um Inhalte nur von der Quelle des Erstanbieters und nicht von Websites oder Servern von Drittanbietern zu laden. Einige Anforderungen, z. B. Skripts oder Objekte, sind ebenfalls nicht zulässig.

Sebastian entdeckte eine Sicherheitsanfälligkeit in $ rewrite, die Angreifer ausnutzen können, um Inhalte von Remotestandorten zu laden. Folgende Bedingungen müssen erfüllt sein:

  1. Ein JavaScript-String muss mit XMLHttpRequest oder Fetch geladen und der Rückgabecode ausgeführt werden.
  2. Die Herkunft kann auf der Seite nicht eingeschränkt werden, z. B. durch die Verwendung von Richtlinien für Inhaltssicherheit, und die endgültige Anforderungs-URL kann vor der Ausführung nicht überprüft werden.
  3. Der Ursprung des Codes muss eine serverseitige offene Umleitung aufweisen oder willkürlichen Benutzerinhalt hosten.

Zu den Eigenschaften, die allen drei Anforderungen entsprechen, gehören unter anderem Google Maps, Google Mail oder Google Images. Ein Proof of Concept wurde auf der Website des Autors veröffentlicht. Sie können ihn auf Google Maps testen, um zu überprüfen, ob er funktioniert.

Ich habe den Exploit in Chrome und Firefox ausprobiert und konnte ihn nicht zum Laufen bringen. Lawrence Abrams über Bleeping Computer hat es jedoch geschafft, es zum Laufen zu bringen.

Schlussworte

Der Angriff hat eine andere Anforderung, da er auf Filtern beruht. Ein manipulierter Filter muss zur Liste der vom Inhaltsblocker verwendeten Filter hinzugefügt werden. Zu den beiden am häufigsten verwendeten Optionen gehört, dass Benutzer ihren Inhaltsblockern manuell Filter hinzufügen oder dass sich ein manipulierter Filter in einer Filterliste befindet, die geladen wird.

Die zweite Option scheint wahrscheinlicher zu sein, insbesondere in Fällen, in denen Benutzer andere Listen in die Erweiterungen laden. Es ist nicht das erste Mal, dass Listen manipuliert werden, aber es kommt nicht sehr oft vor.

Die Erweiterung uBlock Origin ist von dem Problem nicht betroffen, da sie $ rewrite nicht unterstützt.