Cross Site Scripting (XSS)

Geändert am 12.03.2008
Internet-Seiten, die Eingaben von Nutzern annehmen, verarbeiten und wieder ausgeben, sind potentiell gefährdet durch einen Angriff mit Cross Site Scripting (XSS). Dabei versucht der Angreifer, Programmcode in eine Webanwendung einzuschleusen, die von anderen genutzt wird.

Bei Gästebüchern ist es zum Beispiel erwünscht, dass ein Besucher Texte oder Bilder eingibt.


Manchmal lässt das Gästebuch dabei auch HTML-Formatierungen zu. Möchte Sandy, dass die Schrift blau erscheint und ein Bild eingefügt wird, dann schreibt sie in das Eingabefeld:

»<font color="blue"> Viele Grüße aus London </font> <img src="http://www.beispieldomain/bigben.jpg">«

Nach dem Abschicken des Eintrages wird der HTML-Code von der Gästebuch-Anwendung ausgewertet und in einen Eintrag überführt. In diesem Beispiel erscheint dann eine blaue Schrift und das Bild im Gästebucheintrag von Sandy.


Statt die Schrift zu formatieren oder ein Bild einzubinden, wäre es aber auch denkbar, dass ein Nutzer versucht, einen JavaScript-Code einzufügen.

»<script>alert('Hello world!');</script>«

Prüft und filtert die Gästebuch-Anwendung solche Eingaben nicht richtig, landen sie anschließend ebenfalls als Eintrag im Gästebuch. Ein beliebiger Besucher des Gästebuches würde dann im Folgenden von einem plötzlich erscheinenden Fenster überrascht, das ihn mit einem freundlichen »Hello world!« begrüßt:

Statt einer harmlosen Nachricht in einem Gästebuch sind solche Angriffe auch auf kritischere Webanwendungen denkbar.

Gelingt es beispielsweise einem Angreifer, in den Webauftritt einer Bank eigenen JavaScript-Code einzuschleusen, so kann er damit das Aussehen der Seite unter Umständen beliebig beeinflussen und dem Nutzer ein gefälschtes oder manipuliertes Formular unterschieben.


  

Die besondere Brisanz bei diesem Vorgehen steckt auch darin, dass die Adresse der angesteuerten Seite in der Adresszeile bestehen bleibt, damit wird ein perfekteres Phishing möglich, wenn der Benutzer dieser Seite vertraut.
Neben direkten Manipulationen der Seitenelemente ist es auch denkbar, dass mit dem eingeschleusten Code auf die Cookies der Seite zugegriffen wird. Cookies dienen oft dazu, Nutzer wieder zu erkennen oder beim Besuch einer Seite eine Sitzung zu ermöglichen:
Wenn man sich einmal bei seinem Online-Buchversand eingeloggt hat, kann man den Katalog durchsuchen und den Warenkorb füllen, ohne dass man sich auf jeder Seite erneut mit dem Passwort ausweisen muss. Gelingt es einem Angreifer, auf die Cookies eines Nutzers zuzugreifen und diese an sich zu senden, dann ist er unter Umständen in der Lage, der Webanwendung vorzutäuschen, er sei der berechtigte Nutzer. Er könnte auf diese Weise auf der Seite agieren wie der eingeloggte Nutzer, ohne dessen Passwort zu kennen. Während eines Online-Spieles könnte er in die Rolle des Spielers schlüpfen, das mühsam erkämpfte Spielgold und Zauberschwert einem anderen überlassen, im Spieleforum unter fremdem Namen Beiträge schreiben und die im Benutzerprofil hinterlegten Daten auslesen.

ZUM SEITENANFANG