Cross-Site-Tracing
# Cross-Site-Tracing

Cross-Site-Tracing (kurz: CST oder XST) ist ein Angriff auf Internetbenutzer mit dem Ziel, bestimmte Benutzerdaten auszuschnüffeln. Über eine mittlerweile selten benutze, reguläre Webserver-Funktion (HTTP-TRACE) und durch Sicherheitslücken in Browsern ist es für einen Dritten möglich, HTTP-Header-Informationen zu erhalten. Dieser Angriff tritt besonders in Verbindung mit Cross-Site-Scripting auf.

Anders als bei einem normalen Cross-Site-Scripting-Angriff ist ein Cross-Site-Tracing-Angriff jedoch nicht auf dasselbe Dokument oder denselben Webserver beschränkt, sondern es kann jeder beliebige Webserver genutzt werden, um an die Benutzerdaten des Opfers einer beliebigen Website zu gelangen. Dieser Umstand macht diese Angriffsform besonders gefährlich, da prinzipiell von jeder Website aus, die ein Benutzer aufruft, ein Angriff auf die Benutzerdaten einer beliebigen anderen Website möglich ist.

## Details

Eine HTTP-TRACE-Anfrage entspricht einer GET-Anfrage, mit dem Unterschied, dass der Webserver die gesamte an ihn gesendete Anfrage als Echo an den Client zurückgibt. Ein clientseitig ausgeführtes Skript kann eine TRACE-Anfrage senden und sämtliche an den Webserver gesendete Informationen (samt allen HTTP-Header-Feldern, also auch Authentifizierungsdaten, Cookies etc.) abfangen, die für den Angreifer von Interesse sind.

Mit einem solchen Angriff können Sicherheitsmaßnahmen wie der von Microsoft in HTTP-Cookies eingeführte HttpOnly-Parameter und sogar verschlüsselte Übertragungen (wie etwa bei HTTPS) umgangen werden.

Da Cross-Site-Scripting eine der häufigsten Schwachstellen in Webanwendungen darstellt, tritt auch Cross-Site-Tracing hauptsächlich in Verbindung mit diesem auf. Allerdings eignen sich theoretisch alle clientseitigen Protokolle für diesen Angriff, wenn damit HTTP-Anfragen erstellt werden können. Hierzu zählen neben JavaScript und JScript auch VBScript, Flash(Actionscript), Java, ActiveX und andere.

## Beispiel

* Ein Benutzer wird auf eine vom Angreifer vorbereitete HTML-Seite gelockt.
* Die Seite enthält JavaScript-Code, der eine TRACE-Anfrage zu einer Website sendet, von der der Angreifer die Cookie-Daten des Benutzers erhalten will.
* Der Server sendet die Anfrage des Clients samt Cookies an den Client zurück, wo sie vom JavaScript-Code ausgewertet wird.
* Das JavaScript-Skript filtert die Cookies aus und sendet diese an den Angreifer.

## Schutz

Alle Webserver, die die TRACE-Methode unterstützen, eröffnen diese Angriffsmöglichkeit. Sie können durch Deaktivierung der TRACE-Unterstützung auf Seiten des Webservers für Anfragen an diesen Webserver verhindert werden. Die allermeisten Webserver heutzutage haben die TRACE-Methode nicht aktiviert. Sie dient ausschließlich diagnostischen Zwecken und sollte immer ausgeschaltet sein.

