Glossar XSS (Cross-Site Scripting)

Was ist XSS (Cross-Site Scripting)?

Cross-Site Scripting, oder XSS, ist ein Sicherheitsmangel auf Websites, der es Angreifern ermöglicht, schädliche Skripte zu Webseiten hinzuzufügen. Meistens werden diese Skripte in JavaScript geschrieben.

Wenn jemand eine von XSS betroffene Seite besucht, führt sein Browser das Skript des Angreifers aus. Dies kann zu gestohlenen Cookies, gehackten Sitzungen oder zu Aktionen führen, die ohne die Zustimmung des Benutzers ausgeführt werden.

XSS, ähnlich wie SQL Injection, wird regelmäßig in der OWASP Top 10 als eine der häufigsten Schwachstellen von Webanwendungen aufgeführt.

plexicus-xss-attack-ilustration

Wie funktioniert XSS?

XSS zielt häufig auf Webanwendungen ab, die Benutzereingaben nicht korrekt überprüfen und bereinigen.

Zum Beispiel, wenn ein Kommentarfeld rohes HTML oder JavaScript ohne jegliche Filterung zulässt, könnte ein Angreifer Code wie diesen hinzufügen:

<script>alert('Hacked!');</script>

Wenn Opfer die Seite ansehen, wird der bösartige Code in ihrem Browser ausgeführt.

Warum XSS in der Cybersicherheit wichtig ist

XSS kann zu einem größeren Sicherheitsbruch führen:

  • Kontenübernahme (Diebstahl von Sitzungscookies zur Benutzerimitation)
  • Datendiebstahl (Erfassung von Formulareingaben wie Passwörtern oder Kreditkarten)
  • Phishing-Angriffe (Einschleusen gefälschter Anmeldeformulare)
  • Malware-Verbreitung (Weiterleitung von Benutzern zu bösartigen Websites)

Arten von XSS

  1. DOM-basierte XSS
  2. Der Angriff erfolgt vollständig im Browser durch Manipulation des Document Object Model (DOM), ohne den Server einzubeziehen.
  3. Gespeicherte XSS
  4. Bösartiges Skript wird dauerhaft auf dem Server gespeichert, wie z.B. in der Datenbank oder auf der Profilseite.
  5. Reflektierte XSS
  6. Skript wird von einem Webserver reflektiert (z.B. in URL oder Fehlermeldung), das Skript wird ausgeführt, wenn das Opfer auf einen von Angreifern erstellten Link klickt.

Wie man XSS verhindert

  • Eingabesäuberung & Ausgabe-Codierung: Immer Benutzereingabedaten bereinigen, bevor sie verarbeitet werden, und Benutzereingaben in ein sicheres Format umwandeln
  • Verwendung von Content Security Policy (CSP): Beschränkt, welche Skripte im Browser ausgeführt werden können.
  • Vermeidung von eval() und Inline-JavaScript: Um Injektionsrisiken zu reduzieren.
  • Sicherheitstests (DAST/IAST): Sicherheitstests durchführen, um Schwachstellen frühzeitig zu erkennen

Beispiel aus der realen Welt - Samy-Wurm (MySpace, 2005)

Was passiert ist: Samy Kamkar veröffentlichte ein MySpace-Profil, das eine gespeicherte XSS-Nutzlast enthielt. Wenn andere Benutzer das Profil ansahen, lief die Nutzlast in ihren Browsern, sie (a) fügte Samy als Freund hinzu, (b) fügte den Satz „Samy ist mein Held“ zu ihren Profilen hinzu und (c) replizierte sich auf die Profilseiten dieser Benutzer.

Auswirkung: Der Wurm verbreitete sich selbst auf ~1 Million Benutzer innerhalb von ~20 Stunden und zwang MySpace, vorübergehend offline zu gehen.

Warum es funktionierte: MySpace erlaubte nicht entschlossene HTML/Attribute in Profilfeldern, was die Ausführung gespeicherter Skripte in den Browsern der Besucher ermöglichte.

Lektionen / Korrektur: Richtige Ausgabe-Codierung, Eingabe-Sanitierung, Entfernung von HTML in Profilfeldern und schnelle Patch-Bereitstellung. Samy sah sich später rechtlichen Konsequenzen gegenüber, und MySpace setzte Filter ein.

Verwandte Begriffe

Nächste Schritte

Bereit, Ihre Anwendungen zu sichern? Wählen Sie Ihren weiteren Weg.

Schließen Sie sich über 500 Unternehmen an, die ihre Anwendungen bereits mit Plexicus sichern

SOC 2 Compliant
ISO 27001 Certified
Enterprise Ready