Was ist Cross-Site-Scripting (XSS)?

Cross-Site-Scripting-Angriffe (XSS) schleusen bösartige Skripte in vertrauenswürdige Websites ein, um Besucher ins Visier zu nehmen und zukünftige Interaktionen zu beeinflussen. Obwohl XSS-Angriffe schon seit langer Zeit existieren (erstmals 1999 identifiziert), stellen sie nach wie vor eine beliebte Form von Cyberangriffen dar. Tatsächlich war XSS die am häufigsten entdeckte Cloud-Schwachstelle im IBM Cloud Threat Landscape Report 2024.

XSS-Angriffe nutzen Sicherheitslücken in Webanwendungen aus, um bösartigen Code, meist clientseitigen JavaScript-Code, einzuschleusen, ohne dass der Website-Betreiber oder Besucher davon Kenntnis hat. Vertrauenswürdige Websites mit den entsprechenden Anmeldeinformationen, die vom Browser des Opfers überprüft werden, fungieren unwissentlich als Verbreitungsmechanismus für bösartige Skripte aus nicht vertrauenswürdigen Quellen.

Diese Skripte werden dann auf den Browsern der Opfer ausgeführt und beeinträchtigen so deren Interaktion mit der Webanwendung. Dies kann auf verschiedene Weise geschehen, beispielsweise durch die Verunstaltung der Website, das Kapern der Sitzung, das Einschleusen von Schadsoftware und Phishing.

Read 2025 WAF Comparison Results Bericht herunterladen

Was ist Cross-Site-Scripting (XSS)?

Wie XSS-Angriffe funktionieren

Ein vereinfachter 3-stufiger XSS-Angriffsprozess sieht folgendermaßen aus:

  1. Der Angreifer identifiziert anfällige Webseiten, um dort Schadcode einzuschleusen. Zum Beispiel, wenn eine Website nicht alle Eingaben validiert.
  2. Sobald der Schadcode auf der Website vorhanden ist, wartet der Angreifer entweder passiv darauf, dass ahnungslose Besucher ihn ausführen, oder er sendet proaktiv den Link zur kompromittierten Website an potenzielle Opfer. Dies kann über Social-Media-Nachrichten oder E-Mails geschehen, indem man sie dazu verleitet, die Seite zu besuchen.
  3. Sobald die Besucher der Website den Code ausgeführt haben und zu Opfern geworden sind, kann der Angreifer je nach Zielsetzung zukünftige Interaktionen auf verschiedene Weise manipulieren.

XSS-Angriffe umgehen die Ursprungsrichtlinie des Browsers und verstecken ihre bösartigen Skripte auf einer vertrauenswürdigen Website. Browser prüfen, ob Websites sicher sind und über die richtigen Anmeldeinformationen verfügen. Sie können jedoch keine weiteren Skripte überprüfen, die möglicherweise in die Website eingeschleust wurden. Daher kann eine mangelhafte Sicherheit von Webanwendungen dazu führen, dass Benutzer bösartigen Skripten ausgesetzt sind, was schwerwiegende Folgen haben kann.

Die Auswirkungen von XSS-Angriffen

Je nach Art des Angriffs und den Zielen des Hackers kann XSS eine Reihe von Konsequenzen sowohl für die Webanwendung als auch für deren Benutzer nach sich ziehen. Für Besucher der Website oder Nutzer der Webanwendung können XSS-Angriffe folgende Folgen haben:

  • Website-Defacement: Die Manipulation des Erscheinungsbilds der Website oder das Hinzufügen neuer Elemente durch HTML- oder CSS-Änderungen, um zu verändern, was der Besucher sieht. Angreifer könnten ihnen etwas völlig anderes zeigen als die ursprüngliche Webseite, um sie dazu zu bringen, etwas zu tun, was sie normalerweise nicht tun würden.
  • Session Hijacking: Mit ihrem Schadcode, der im Browser des Opfers ausgeführt wird, kann der Angreifer auf Cookies zugreifen, um die Sitzung zu übernehmen. Dies ermöglicht es ihnen, die Kontrolle über ihr Konto in der Webanwendung zu übernehmen, unautorisierte Aktionen durchzuführen und auf sensible, im Browser gespeicherte Informationen zuzugreifen.
  • Malware Einschleusung: Die bösartigen Skripte des Angreifers schleusen Malware in den Browser des Besuchers ein, die dann auf dessen System ausgeführt werden kann. Diese Malware kann verschiedene Ziele verfolgen, darunter Keylogger zum Aufzeichnen von Anmeldeinformationen, Software zum Schürfen von Kryptowährungen oder die Übernahme der Kontrolle über das System als Teil eines größeren Botnetzes zum Einsatz bei einem anderen DDoS-Angriff.
  • Phishing: Besucher werden auf eine Phishing-Seite mit gefälschten Eingabefeldern umgeleitet, um Benutzerdaten zu erfassen und die Kontrolle über deren Konten zu erlangen.

Während Besucher typischerweise das Hauptziel von XSS-Angriffen sind, wirken sich diese auch auf die Webanwendung aus. Datenschutzverletzungen führen zu Compliance-Problemen, die potenzielle Bußgelder, rechtliche Konsequenzen und Reputationsschäden nach sich ziehen können. Die Verunstaltung von Websites kann dazu führen, dass Angreifer anstößige oder bösartige Inhalte anzeigen und dadurch auch den Ruf schädigen.

Wenn der XSS-Angriff zudem Opfer mit privilegiertem Zugriff kompromittiert, kann dies dazu führen, dass Hacker die Funktionalität der Webanwendung kontrollieren und es zu schwerwiegenderen Datenschutzverletzungen kommt.

Arten von XSS-Angriffen

Reflected Cross-Site Scripting

Reflected XSS liegt vor, wenn die Webanwendung bösartigen Code an den Benutzer „reflektiert“, meist über anfällige Eingabefelder. Wenn eine Website beispielsweise die über den URL-Parameter übermittelten Eingaben nicht bereinigt, können Angreifer bösartige Skripte einschleusen, indem sie diese in den Link einbetten. Nutzer, die auf diesen Link klicken, führen dann unwissentlich das Skript aus und setzen so ihren Browser dem Angreifer aus. Reflected XSS tritt nur auf, wenn der Link angeklickt wird. Es handelt sich um eine nicht-persistente Form von Cross-Site-Scripting.

Gespeichertes Cross-Site-Scripting

Gespeichertes XSS ist eine persistente Form des Cross-Site-Scriptings, die so lange neue Benutzer infiziert, bis der Website-Betreiber die Bedrohung erkennt und darauf reagiert. Bei diesen Angriffen verstecken nicht vertrauenswürdige Quellen ihren Code auf der Website, indem sie dauerhaft gespeicherte Eingabefelder wie beispielsweise Kommentarbereiche nutzen. Wenn die Website die Eingaben im Kommentarbereich nicht validiert, können Angreifer HTML-Tags einbetten, die beim Laden der Seite durch neue Besucher ausgeführt werden.

DOM-basiertes Cross-Site-Scripting

DOM-basiertes XSS verändert und injiziert Code in das Domänenobjektmodell (DOM) im Browser des Besuchers. Dies betrifft nur die Clientseite, die Antwort auf dem Server bleibt unverändert. Beispiele hierfür sind Websites, die unstrukturierte Daten aus der URL in die Webseite schreiben.

Bewährte Verfahren zur Identifizierung von XSS-Schwachstellen und zur Verhinderung von Angriffen

Durch die Einhaltung bewährter Sicherheitspraktiken für Webanwendungen können Sie Ihre Website-Besucher schützen und Ihren Ruf bewahren.

Identifizieren Sie die Schwachstelle der Webanwendung

Der erste Schritt besteht darin, Ihre Webanwendung auf Schwachstellen oder XSS-Angriffe zu überprüfen. Sie können dies entweder manuell oder mithilfe spezieller Tools tun:

  • Manuelle Codeüberprüfung: Führen Sie eine Codeanalyse durch, um Schwachstellen zu identifizieren, durch die Angreifer bösartige Skripte in Ihre Website einschleusen könnten. Darüber hinaus können Sie mithilfe von Testangriffsnutzlasten feststellen, ob es möglich ist, harmlose Skripte auf Browsern auszuführen, die Ihre Website besuchen.
  • Automatisierte Web-Schwachstellen-Scanner: Es stehen Tools zum Scannen von Webanwendungen und zum Identifizieren von XSS-Schwachstellen zur Verfügung. Diese verwenden typischerweise statische und dynamische JavaScript-Analyse.

Eingabe validieren

Ihre Webanwendung benötigt robuste Eingabevalidierungsverfahren, um alle Benutzereingaben zu bereinigen. Beispiele hierfür sind:

  • Die Validierung der URL erfolgt über ein sicheres Protokoll.
  • Überprüfung, ob die vom Benutzer eingegebenen numerischen Werte nur ganze Zahlen enthalten.
  • Sicherstellen, dass die Eingaben die erwarteten Zeichen enthalten.

Durch das Blockieren ungültiger Eingaben leisten Sie einen wichtigen Beitrag dazu, dass nicht vertrauenswürdige Quellen keinen Code in Ihre Website einschleusen können.

Ausgabe kodieren

Der nächste Schritt besteht darin, alle vom Benutzer auf die Website geschriebenen Daten zu kodieren. Die erforderliche Kodierung hängt vom Kontext ab und kann mehrere Kombinationen erfordern, wie z. B. sowohl Javascript- als auch HTML-Kodierungsebenen.

Setzen Sie die Content-Sicherheitsrichtlinie durch

Sollten beide dieser präventiven Maßnahmen versagen, helfen Content-Sicherheitsrichtlinien (CSPs) dabei, die Auswirkungen eines XSS-Angriffs abzumildern. Sie schränken ein, ob externe Skripte geladen werden, und ermöglichen es Ihnen, festzulegen, dass diese nur von derselben Quelle geladen werden. Durch die ordnungsgemäße Durchsetzung von CSPs lässt sich der Erfolg von XSS-Angriffen selbst dann reduzieren, wenn es dem Angreifer gelungen ist, den Schadcode einzuschleusen.

Nur HTTP-Cookies setzen

Durch die Kennzeichnung von HTTP-only-Cookies können Session-Cookies nur von clientseitigen Skripten erfasst werden. Dies blockiert den Zugriff auf JavaScript-Code und verringert somit die Wahrscheinlichkeit einer Sitzungsübernahme durch XSS erheblich.

Implementieren Sie eine Web Application Firewall.

Schließlich überwacht und filtert die Implementierung einer Web Application Firewall (WAF) den Datenverkehr und ermöglicht es Ihnen, Sicherheitsrichtlinien zu entwickeln und durchzusetzen, die auf XSS-Angriffe abzielen. Dies umfasst das Scannen von URLs und anderen Eingabefeldern, um schädlichen Code zu identifizieren und zu blockieren, der den Benutzern angezeigt wird. Viele WAFs beinhalten mittlerweile auch KI- und maschinelles Lernen-Technologien, um Kontextinformationen zu analysieren und Versuche zu erkennen, die Sicherheitsrichtlinie mithilfe unbekannter XSS-Angriffsvarianten zu umgehen.

Schützen Sie Ihre Webanwendung mit Check Point WAF von Check Point

Check Point WAF von Check Point ist die führende Web Application Firewall mit Fokus auf Prävention, die kontextbezogene KI einsetzt, um Ihre Anwendungen vor bekannten und unbekannten Bedrohungen zu schützen. Erfahren Sie mehr über Check Point WAF, einschließlich der Möglichkeit, es innerhalb weniger Minuten mit WAF as a Service (WAFaaS) bereitzustellen.