DOM-Based XSS
Was ist DOM-Based XSS?
DOM-Based XSS (Document Object Model Based Cross-Site Scripting) ist eine spezifische Form von Cross-Site Scripting, bei der sich die Schwachstelle ausschließlich im clientseitigen JavaScript-Code befindet. Im Gegensatz zu reflektierten oder persistenten XSS-Angriffen erfolgt bei DOM-Based XSS keine Kommunikation mit dem Server – stattdessen werden manipulierte Daten direkt im Browser über das DOM verarbeitet und anschließend als Schadcode ausgeführt.
Diese Angriffsform nutzt unsichere DOM-Zugriffe, beispielsweise document.URL
, document.location
oder location.hash
, um Werte aus der URL auszulesen und über gefährliche DOM-APIs wie innerHTML
, document.write()
oder eval()
ohne vorherige Validierung einzubinden.
Technischer Aufbau & Varianten
Typische Angriffspunkte:
-
Direktes Einfügen von URL-Parametern via
innerHTML
-
Nutzung von
eval()
mit unvalidierten Daten -
Manipulation von DOM-Knoten über
document.write()
oderappendChild()
-
Dynamische Skripte, die Daten aus
window.location
ohne Encoding verwenden
Sicherheitsrisiken entstehen vor allem in Single-Page-Applications (SPAs), in denen die gesamte Logik clientseitig verarbeitet wird. Die Schwachstellen werden häufig über JavaScript-Bibliotheken oder benutzerdefinierte Event-Handler eingeführt.
Schutzmaßnahmen:
-
Trusted Types: Browser-Funktion zum Blockieren unsicherer DOM-Zuweisungen
-
Konsequentes Escaping aller Daten vor der DOM-Ausgabe
-
Verzicht auf
eval()
und verwandte APIs -
Frameworks wie React oder Angular nutzen Virtual DOMs und eingebauten Schutz vor XSS
Relevanz in der Praxis
DOM-Based XSS ist besonders heimtückisch, da der Angreifer keine Serverinteraktion benötigt und konventionelle Filtersysteme häufig keine Anzeichen erkennen. Angriffe können durch:
-
E-Mails mit manipulierten Links
-
Angreifer-kontrollierte Referrer-URLs
-
Drittanbieter-Skripte
ausgelöst werden. Selbst auf HTTPS-geschützten Seiten kann so Schadcode ausgeführt werden. Unternehmen mit clientzentrierten Webanwendungen (z. B. Banken, Shops) sind besonders gefährdet.
Standards & regulatorische Anforderungen
-
OWASP Top 10 – A3:2021 Injection
-
ISO/IEC 27001 – Kontrolle A.14.2.1: Secure Development Policy
-
BSI C5 – Anforderungen an sichere Webapplikationen
-
W3C Trusted Types – API-Spezifikation zum Schutz vor DOM-XSS
Verwandte Begriffe
-
DOM
-
OWASP Top 10
Beispiel aus der Praxis
Ein Onlineshop implementierte ein Bewertungssystem, bei dem Nutzerkommentare über den URL-Hash (
#comment=
) geladen und perinnerHTML
eingebunden wurden.
Ein Angreifer nutzte diese Schwachstelle, um ein JavaScript-Snippet in die Seite einzubetten, das Cookies auslas und an einen externen Server sendete.
Die Schwachstelle wurde erst entdeckt, nachdem Nutzer über Phishing-Login-Masken berichteten, die sich plötzlich öffneten.