![]() |
|
URL dieser Newsmeldung:
04.08.2005
About Security #17: HTTP Request SmugglingRequest Hijacking und Request Credential Hijacking sind zwei weitere mögliche Angriffe durch das in About Security #17 beschriebene HTTP Request Smuggling. In dieser Folge erfahren Sie, wie diese Angriffe ablaufen. Request HijackingBeim Request Hijacking wird eine Cross-Site-Scripting-Schwachstelle in einer Webanwendung ausgenutzt, um einen dem Cross-Site Scripting ähnlichen Angriff durchzuführen. Voraussetzung für derartige Angriffe ist ein Proxy-Server zwischen Client und Webserver. Im Gegensatz zum in About Security #17 beschriebenen Vergiften des Web-Caches muss der Proxy-Server jedoch nicht cachen.
Im folgenden Beispiel (nach dem in About Security #17
erwähnten Whitepaper von Watchfire
(PDF))
sei der Parameter
[Zeile 11 ist dabei, wie auch bei späteren Beispielen, eine einzige Zeile. Der Umbruch dient nur der besseren Lesbarkeit.] N E U ! Security
aktuell
Ein Microsoft-ISA/2000-Proxy-Server parst das Beispiel als einzelnen
POST-Request mit einer Content Length von 195
Bytes (Zeilen
1–11). Ein Tomcat Web-/Application-Server parst es als einen
vollständigen POST-Request mit einer
Content-Length von 10
Bytes (Zeilen 1–7 einschließlich des Leitet der ISA-Server danach zum Beispiel einen GET-Request von einem Client an den Tomcat-Server weiter, wird von diesem das erste empfangene Byte als Vervollständigung des gespeicherten Requests betrachtet. Der Rest des neuen Requests wird als ungültig verworfen und der vervollständigte gespeicherte Request beantwortet:
Der Client erhält als Antwort eine HTML-Seite mit folgendem eingeschleusten JavaScript-Code:
Genauso kann jeder beliebige andere JavaScript-Code eingeschleust werden. Der Angreifer kann auch die übertragenen Cookies und Daten der HTTP-Authentifizierung stehlen. Diese befinden sich in den HTTP-Headern des Client Requests. Durch entsprechende Wahl des Content-Length-Headers in Zeile 9 kann der Angreifer diese Daten in die Antwort an den Client schreiben lassen, von wo aus er sie sich vom gleichzeitig eingeschleusten JavaScript-Code zusenden lässt:
Der unvollständige HTTP-Request in den Zeilen 7–11 umfasst deutlich weniger als die angegebene Content-Length von 600 Bytes. Dadurch werden die ersten rund 300 Bytes des nächsten Requests in die Antwort integriert. Die darin enthaltenen HTTP-Header liefern die gewünschten Informationen wie Cookies des Clients, Authentifizierungsdaten und die angeforderte URL, die ebenfalls sensitive Informationen enthalten kann. Request Credential HijackingEin Angreifer kann durch folgenden Angriff auch ein Skript mit den Authentifizierungsdaten (Credentials) eines Benutzers aufrufen:
Sendet der Client danach einen Request wie zum Beispiel
vervollständigt der Tomcat-Server damit den unvollständigen Request zu
und führt ihn aus: Das Skript Inzwischen kennen Sie drei mögliche Angriffe über HTTP Request Smuggling: Das Vergiften von Webcaches, Request Hijacking und Request Credential Hijacking. In der nächsten Folge lernen Sie weitere Angriffe kennen: Die Täuschung von Firewalls und Intrusion-Detection- bzw. Prevention-Systemen und weitere mögliche Angriffe.
Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen! About Security – Übersicht zum aktuellen Thema "Sichere Webanwendungen"
|
||
|