it-swarm.com.de

Testen auf HTTP TRACE-Methode

Wie kann ich auf meinem Webserver auf HTTP TRACE testen?

Ich muss einen Tester schulen, um zu überprüfen, ob die HTTP TRACE-Methode deaktiviert ist.

Idealerweise benötige ich ein Skript zum Einfügen in Firebug, um eine https-Verbindung zu initiieren und die Webserverantwort auf einen HTTP TRACE-Befehl zurückzugeben.

Hintergrund:

Unsere Sicherheits-Pen-Tester haben eine Sicherheitsanfälligkeit in HTTP TRACE festgestellt, und wir müssen nachweisen, dass diese behoben ist.

Referenzen:

46
Andrew Russell

Der einfachste Weg, den ich mir vorstellen kann, ist die Verwendung von cURL (was skriptfähig ist).

 curl -v -X TRACE http://www.yourserver.com

Wenn Sie es mit TraceEnable Off Auf einem Apache-Server ausführen, wird HTTP/1.1 405 Method Not Allowed Korrekt zurückgegeben (gerade auf einem Apache 2.2.22 getestet).

Dies funktioniert auch auf HTTPS-Sites, vorausgesetzt, cURL verfügt über die richtigen Informationen, die der SSL-Schicht bereitgestellt werden. Dies ist der Scheck des faulen Mannes von Google

curl --insecure -v -X TRACE https://www.google.com/

... es verhandelt die Verbindung (überprüft die Zertifikatkette nicht, aber das ist hier nicht das Problem, da wir den Status TRACE überprüfen möchten) und antwortet 405:

* Server certificate:
*        subject: C=US; ST=California; L=Mountain View; O=Google Inc; CN=www.google.com
*        start date: 2013-02-20 13:34:56 GMT
*        expire date: 2013-06-07 19:43:27 GMT
*        subjectAltName: www.google.com matched
*        issuer: C=US; O=Google Inc; CN=Google Internet Authority
*        SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
> TRACE / HTTP/1.1
> User-Agent: curl/7.25.0 (x86_64-suse-linux-gnu) libcurl/7.25.0 OpenSSL/1.0.1c zlib/1.2.7 libidn/1.25 libssh2/1.4.0
> Host: www.google.com
> Accept: */*

< HTTP/1.1 405 Method Not Allowed
53
LSerni

Es gibt zwei Möglichkeiten:

SCHRITT 1: openssl s_client -connect example.com:443

SCHRITT 2 :

TRACE / HTTP/1.1
Host: example.com

(zweimal die Eingabetaste drücken)

oder

OPTIONS / HTTP/1.1
Host: example.com

(Drücken Sie zweimal die Eingabetaste.) (Möglicherweise müssen Sie diese schnell einfügen. Kopieren Sie sie und fügen Sie sie ein, indem Sie sie eingeben.) SCHRITT 3: Überprüfen Sie, ob die Ausgabe den Fehler 400 ergibt, wenn ich mich nicht irre.

Ein weiteres Werkzeug, das Sie verwenden können, ist gnutls.

6
Lucas Kauffman

Sie können einen Proxy wie Burp Suite oder Zap verwenden und einige einfache Schritte ausführen:

  1. richten Sie Ihren Browser so ein, dass er den ausgewählten Proxy durchläuft.
  2. eine normale HTTP-Anfrage stellen (z. B. GET /index.php HTTP/1.1) und abfangen;
  3. ändern Sie die HTTP-Methode in TRACE und senden Sie die Anforderung an den Server.
  4. überprüfen Sie die HTTP-Antwort.

Wenn die Antwort die gesamte Anforderung enthält, ist TRACE aktiviert und funktioniert ordnungsgemäß.

5
Gurzo

Was alle anderen sagten, war in Bezug auf das Senden des Tests korrekt, jedoch hat niemand eine korrekte Identifizierung gegeben, ob er anfällig ist. Verschiedene Server reagieren unterschiedlich, ganz zu schweigen von Mod-Umschreibungen bei einer TRACE/TRACK-Anfrage. Es gibt zwei Möglichkeiten, die Sicherheitslücken TRACE und TRACK zu identifizieren, die zu funktionieren scheinen, ohne falsche Positive oder falsche Negative anzugeben (auf die ich aufmerksam gemacht wurde).

1) Das Ziel gibt einen beliebigen Statuscode <400 oder> = 600 zurück

2) Das Ziel gibt die Überschriften zurück, die Sie übergeben haben.

3
Eric

Dies kann mit netcat erfolgen

nc www.myhost.com 80
TRACE /mypage.html HTTP/1.1
Host: www.myhost.com

Ein Beispiel für die Ausgabe ist

HTTP/1.1 405 Method Not Allowed
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1
Set-Cookie: JSESSIONID=rfyji7QBFFld7HwMGLVM+F8s.undefined; Path=/
Content-Type: text/html;charset=utf-8
Content-Length: 1125
Date: Fri, 06 Mar 2015 06:06:29 GMT
3

Ich schätze all die tollen Antworten, die die erfahrenen Benutzer der Website geben. Ich habe gesehen, wie Ihre Fragen referenziert wurden, und Sie haben über OWASP gesprochen. Ich denke, Sie sind mit der Verwendung von Owasp und Esp Owasp Live-CD vertraut.

CAL9000. Das Tool verfügt über ein http-Anforderungsfeld, das mehr als ein Feld ist, das die benutzerdefinierte Generierung des gesamten http-Headers ermöglicht. Sie können trace auswählen, die Header-Optionen definieren und einfach auf Los klicken. Die Antwort wäre im folgenden Text zu sehen.

Der Grund, warum ich dieses Tool mehr als das andere empfehlen würde, ist, dass dieses Tool von einer Community bereitgestellt wird, die in den Konzepten der Anwendungssicherheit mehr umgekehrt ist als jedes andere. Diese Tools werden von Experten getestet und verifiziert. Weitere Infos owasp ref

ALTERNATIVE METHODE

http://yehg.net/pentest/CAL9000/#httpRequests

es ist eine Online-Version des Tools.

HINWEIS ZUR SPUR

Firefox unterstützt die TRACE-Funktion derzeit nicht (über xmlHttpRequest). CAL9000 ruft die TRACE-Informationen von einem serverseitigen Skript ab. Eine Erinnerung daran, dass eine an eine Ressource gerichtete Anfrage ( http://www.blah.com/index.html ) nicht unbedingt dieselbe Antwort generiert wie eine an ein Verzeichnis gerichtete (- http://www.blah.com/js/ ), obwohl sie sich auf derselben Site befinden.

2
Saladin