Cross-Site-Scripting
Cross-Site-Scripting (XSS; deutsch Webseitenübergreifendes Skripting) bezeichnet das Ausnutzen einer Sicherheitslücke in Webanwendungen, indem nicht vertrauenswürdige Skripte in einen vertrauenswürdigen Kontext, wie den Browser des Benutzers, eingeschleust werden. Aus diesem vertrauenswürdigen Kontext kann dann ein Angriff gestartet werden, der innerhalb der betroffenen Webanwendung und der aktuellen Benutzersitzung des Opfers ausgeführt wird.
Ziel ist es meist, an sensible Daten des Benutzers zu gelangen, Benutzersitzungen zu entführen oder Schadcode im Browser des Opfers auszuführen, um beispielsweise Benutzerkonten zu übernehmen (Identitätsdiebstahl).
Terminologie
[Bearbeiten | Quelltext bearbeiten]Der Begriff „Cross-Site“ bezieht sich auf das Überschreiten von Grenzen zwischen verschiedenen Websites oder Domänen, etwa um sensible Daten wie Sitzungstoken an Server auszuleiten, die unter Kontrolle des Angreifers stehen. XSS-Angriffe können jedoch auch ohne Beteiligung externer Websites ablaufen, beispielsweise um Aktionen in der Sitzung des Opfer-Benutzers durchzuführen.
Meist werden für diese Angriffsart aufgrund ihrer weiten Verbreitung Skriptsprachen – insbesondere JavaScript – genutzt: daher „Scripting“.
Das X wird in diesem Zusammenhang im Englischen bildlich als Abkürzung für cross (= „Kreuz“) verstanden.
Trotz der Namensähnlichkeit sind das Cross-Site-Cooking und die Cross-Site-Request-Forgery sowie deren Anwendungen wie etwa die Cross-Site-Authentication-Attacke keine Formen von Cross-Site-Scripting.
Funktionsweise
[Bearbeiten | Quelltext bearbeiten]Cross-Site-Scripting ist eine Art der Code-Injection. Cross-Site-Scripting tritt dann auf, wenn eine Webanwendung Daten annimmt, die von einem Nutzer stammen, und diese Daten dann an einen Browser weitersendet, ohne den Inhalt zu überprüfen. Damit ist es einem Angreifer möglich, auch Skripte indirekt an den Browser des Opfers zu senden und damit Schadcode auf der Seite des Clients auszuführen.
Ein klassisches Beispiel für Cross-Site-Scripting ist die Übergabe von Parametern an ein