Cross-Site Scripting und SQL-Injection

Selbst versendeter bösartiger Code

Ein User kann sich den bösartigen Code aber auch "selbst senden" - und zwar dann, wenn er beim Absenden der Anforderung auf eine nicht vertrauenswürdige Ressource vertraut. Dazu konstruiert der Angreifer einen Link wie diesen:

<a href="http://www.primasite.com/mylinks.cgi?mycomment= <SCRIPT>ScriptCode</SCRIPT>">Hier klicken</a>

Beim Klicken auf den Link wird dann der Kommentar des Users an den richtigen Server gesendet und dort ausgewertet. Liefert der Server dann aber eine Seite zurück, in der unter anderem auch der vom Anwender eingegebene Inhalt steht, führt dies dazu, dass das in der URL als Parameter eingebettete Script auf dem Browser des Users ausgeführt wird. Der User schickt sich also selbst ein unter Umständen bösartiges Script! Zugegeben: Dazu muss der Angreifer natürlich erst einmal in der Lage sein, den passenden Link beim Angegriffenen unterzubringen - was in Webdiskussionsforen unter Umständen recht schwierig sein könnte.

Allerdings geht das auch bei webbasierten Messaging-Systemen - und eine E-Mail mit HTML-Inhalten zu versenden, stellt für den Angreifer kein großartiges Problem dar. Dabei sei noch angemerkt, dass der Server, an den der Request gesendet wird, nicht unbedingt der vom User gewünschte Server sein muss: Stattdessen kann der Angreifer den Link auch so formulieren, dass der Request zunächst an einen Server des Hackers geht. Dort wird dann die per URL-Parameter übertragene Information (zum Beispiel der Inhalt eines Cookies auf dem Client) ausgewertet - und dann wird der Request einfach an den "richtigen" Server weitergeleitet: Der User bekommt davon also gar nichts mit, denn er erhält seine Antwort ja vom "richtigen" Server.