Was ist eigentlich Cross Site Scrpting (XSS)

Was ist eigentlich

Was ist eigentlich Cross Site Scrpting (XSS)

Was ist eigentlich Cross Site Scrpting (XSS)

Cross Site Scripting, oder häufig auch XSS, bezeichnet Verfahren zur Ausnutzung bestimmter Schwachstellen in Webapplikationen. Es basiert darauf, dass Schadcode aus einem nicht vertrauenswürdigen Context injiziert und dadruch innerhalb eines vertrauenswürdigen Contexts zur Ausführung kommt. Klingt verwirrend ist aber einfach:

In ein Kontaktformular, oder ähnliche Eingabefelder auf einer Website, wird Script-Code eingefügt welcher nach der Übertragung
des Formulars, etweder direkt ausgeführt wird. Oder gespeichert und später bei anderen Nutzern ausgeführt wird.

Mit den entsprechenden Maßnahmen lassen sich Session-Informationen stehlen, die dann wiederum zum erlangen bestimmter Nutzerrechte innerhalb einer Webapplikation dienen.

Derzeit werden drei varianten von XSS-Attacken unterschieden:

Reflektive Attacken

Reflektive Attacken, sind solche die sich denen sich der Nutzer selbst aussetzt indem er beispielsweise einen manipulierten Link anklickt. Dieser Link enthält schadhaften Scripcode in Form eines Request Parameters welecher im Code der Applikation reflektiert wird. Dies ist beispielsweise bei Kontaktformularen der Fall welche die Eingaben nach dem Absenden nochmal anzeigen.

Persistente Attacken

Persistente Attacken sind darauf ausgelegt den Schadcode dauerhaft auf einer fremdem Website zu platzieren (Foreneinträge, Gästebücher). Da solche Einträge üblicherweise gespeichert werden, kommen die Schadcodes immer dann zur Ausführung wenn ein Nutzer die infiltrierte Seite anklickt.

DOM-Attacken

DOM-Attacken basieren im Gegensatz zu den oberen beiden Attacken nicht auf Problemen in der Serverseitigen Programmierung, sondern auf leichtsinnigem Umgang mit JavaScript. Jede JavaScript Anweisung die URL-Parameter ausgibt ist anfällig dafür. Beispiel:

document.write(document.url);

Kommt in der URL ein Request-Parameter vor welcher Scripteingaben enthält, kommen diese zur ausführung.

Ich definiere noch eine vierte Angriffsart. Die XSS-Proxy-Attacke. Sie ist nicht unbedingt darauf ausgelegt Schadhaften Code in eine Website zu injizieren, sondern viel mehr darauf, Daten zu manipulieren. Es gibt hier zwei Ansatzpunkte:

1. Man verwendet einen fertigen Proxy Server, wie mod_proxy von Apache

2. Man schreibt sich selbst einen Proxy Server

Diese Art des XSS-Angriffes funktioniert nur wenn die angegriffene Seite einen Ajax-Request macht um bestimmte Daten zu ermitteln und diese mittels eines weiteren Requests zu speichern.

Hat man nun einen Proxy der alle Requests, außer den Ajax-Abfragen,  zur Zielseite durchleitet, kann man auf diese Wege die zu speichernden Rückgabewerte manipulieren. Viele moderne Ajax-Websites die Daten aus mehreren Quellen aggregieren haben genau diese Lücke.

Diskussion

Keine Kommentare zu “Was ist eigentlich Cross Site Scrpting (XSS)”

Post a comment