Cross-Site-Scripting (XSS) ist eine Schadsoftware-Angriffsmethode, bei der bösartige Skripte in ansonsten vertrauenswürdige und harmlose Websites eingeschleust werden. Wenn ein Angreifer bösartigen Code, üblicherweise als Browser-Skript, über eine Webanwendung an einen anderen Endbenutzer sendet, spricht man von einem XSS-Angriff. Webanwendungen, die Benutzereingaben nicht validieren oder verschlüsseln, sind aufgrund verschiedener weit verbreiteter Sicherheitslücken anfällig für diese Angriffe.
Über XSS kann ein Schadskript an einen ahnungslosen Nutzer gesendet werden, um auf dessen Daten zuzugreifen. Im Falle einer nicht vertrauenswürdigen Quelle kann der Browser des Nutzers dies jedoch nicht erkennen und führt das Skript trotzdem aus. Dadurch kann das Schadskript auf Cookies, Session-Tokens oder andere sensible Informationen zugreifen, die der Browser erhält, weil er die Anfrage fälschlicherweise für vertrauenswürdig hält.
Müssen sich Benutzer nicht mit Cross-Site-Scripting auseinandersetzen?
XSS-Schwachstellen auf Websites oder in Anwendungen ermöglichen es Angreifern JavaScript in die Browser der Nutzer einzuschleusen und so die Sicherheit der betroffenen Websites, Webanwendungen und ihrer Nutzer zu gefährden. Wie bei jeder anderen Sicherheitslücke, beispielsweise XSS, betrifft dies nicht nur die Nutzer. Anders ausgedrückt: Wenn Ihre Nutzer betroffen sind, sind auch Sie betroffen.
Gelegentlich wird Cross-Site-Scripting (XSS) eingesetzt, um Webseiten zu verunstalten, anstatt direkt Nutzer anzugreifen. Angreifer versuchen dabei, Webseiten von innen heraus zu schädigen. Durch das Einschleusen von Skripten in eine Webseite können sie deren Inhalte verändern oder den Browser auf eine andere Webseite umleiten, beispielsweise auf eine mit Schadcode infizierte Seite, um so die Webseiteninhalte zu manipulieren.
Wie funktioniert Cross-Site-Scripting?
Zunächst muss ein Angreifer eine Möglichkeit finden, Schadcode (Payload) in die URL einer Webseite einzuschleusen, die das Opfer besucht, um schädlichen JavaScript-Code im Browser des Opfers auszuführen. Anschließend muss das Opfer die Webseite mit dem Schadcode besuchen, um ihn auszuführen. Ein Angreifer kann Social Engineering oder Phishing nutzen, um einem bestimmten Opfer eine schädliche URL zu senden, wenn er ein bestimmtes Ziel anvisiert.
Damit der erste Schritt möglich ist, muss die anfällige Website in der Lage sein, Benutzereingaben direkt in ihre Seiten einzubinden. Dann könnte ein Angreifer eine schädliche Zeichenkette in eine Webseite einfügen, die vom Browser des Opfers beim Aufruf der Seite als Quellcode interpretiert würde.
Welche Arten von XSS-Angriffen gibt es?
XSS-Angriffe lassen sich in drei Haupttypen einteilen. Einige davon sind:
- Reflected XSS : Es spiegelt sich in XSS insofern wider, als das bösartige Skript aus der aktuellen HTTP-Anfrage stammt.
- Gespeicherte XSS : Eine gespeicherte XSS-Schwachstelle, bei der sich das schädliche Skript in der Datenbank einer Website befindet.
- DOM-basiertes XSS : Eine XSS-Schwachstelle, die auf DOM-Daten basiert und bei der die Schwachstelle auf der Clientseite und nicht auf der Serverseite liegt, wird als DOM-basiertes XSS bezeichnet.
Wie kann man XSS verhindern?
Um XSS-Angriffe zu vermeiden, sollten Sie Ihre Eingaben bereinigen. Beispielsweise sollten Sie Daten, die Sie vom Browser erhalten, nicht ungeprüft direkt an Ihren Anwendungscode weitergeben. Auf der Website von Seahawk Media finden Sie weitere Informationen zu diesem Thema, die Sie interessieren könnten.