![]() |
|
URL dieser Newsmeldung:
04.08.2005
About Security #17: HTTP Request SmugglingAb dieser Folge lernen Sie eine neue Sorte von Angriffen gegen Webserver
kennen: HTTP-Request-Smuggling. Dieses Verfahren wurde zuerst von
Watchfire beschrieben
(PDF).
Die UrsachenDer Angriff basiert darauf, dass mehrere an der Übermittlung eines HTTP-Requests beteiligte Systeme (z.B. Cache- oder Proxy-Server, Firewalls) widersprüchliche bzw. inkonsistente Header-Einträge unterschiedlich interpretieren. Bei einem Angriff werden mehrere speziell präparierte HTTP-Requests gesendet, die von den beteiligten Systemen unterschiedlich interpretiert werden. Mögliche Folgen sind das Vergiften von Web-Caches, Request Hijacking, Cross-Site Scripting und die Täuschung von Firewalls und Intrusion-Detection- bzw. Prevention-Systemen. Vergiften des WebcachesBefindet sich ein Webcache/Proxy-Server zwischen Client und Webserver, kann ein Angreifer den Cache so manipulieren, dass eine existierende und cachebare Seite A unter der URL B gespeichert wird. Ruft ein Client danach die Seite B auf, wird der Inhalt der Seite A zurückgeliefert. Beim Angriff wird ein POST-Request mit zwei 'Content-Length'-Headern mit unterschiedlichen Werten verwendet. Einige Server, z.B. IIS und Apache, weisen derartige Requests ab. Andere akzeptieren sie und ignorieren den problematischen Header. Dabei fällt die Entscheidung, welcher Header ignoriert wird, von Server zu Server verschiedlich aus. So verwendet der SunONE Webserver 6.1 (SP1) den ersten 'Content-Length'-Header, während der SunONE Proxy 3.6 (SP4) diesen ignoriert und den zweiten verwendet.
Im folgenden Beispiel (nach obigen Whitepaper) ist
Jede Zeile mit Ausnahme der 10. endet mit einem CRLF ("\r\n").
Der HTTP-Standard
(RFC 2616)
definiert CRLF als Kennzeichnung für das Zeilenende. In Zeile
10 befindet sich ein Leerzeichen hinter Werden diese Requests vom Client über den Proxy an den Webserver gesendet, passiert Folgendes:
Damit ergibt sich folgende Aufteilung der Daten:
Welche Daten werden an den Client zurückgeliefert?
Der Angreifer kann somit cachebare Seiten einer Website durch andere
Seiten der gleichen Site ersetzen. Teilt sich die angegriffene Website die
IP-Adresse mit einer Site unter der Kontrolle des Angreifers, wie es in
Shared-Hosting-Szenarien möglich ist, kann durch einen entsprechenden
Host-Header in Zeile 9 ( Das oben vorgestellte Vergiften eines Webcaches ist nur einer von mehreren möglichen Angriffen über HTTP-Request-Smuggling. In der nächsten Folge werden zwei weitere Angriffe über HTTP-Request-Smuggling beschrieben: Request Hijacking und Request Credential Hijacking. 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"
|
|||||||||
|