2014-07-24 13 views
9

Ich möchte überprüfen, dass meine Webanwendung keine Pfadüberquerungsschwachstelle aufweist.Überprüfen Sie die Traversal-Sicherheitsanfälligkeit im Webserver

Ich versuche curl dafür zu verwenden, wie folgt aus:

$ curl -v http://www.example.com/directory/../ 

Ich würde die HTTP-Anforderung weist ausdrücklich auf die /directory/../ URL gemacht werden, dass eine spezifische nginx Regel zu testen Proxy beinhaltet, ist nicht anfällig für Pfaddurchquerung. Dh, ich würde die HTTP-Anforderung verschickt werden soll: in Bezug auf die / URL

> GET /directory/../ HTTP/1.1 

Aber curl ist Umschreiben die Anfrage, wie in der Ausgabe zu sehen:

* Rebuilt URL to: http://www.example.com/ 
(...) 
> GET/HTTP/1.1 

Ist es möglich, Verwenden Sie curl für diesen Test und zwingt es, die genaue URL in der Anfrage zu übergeben? Wenn nicht, was wäre ein geeigneter Weg?

+0

Benötigen Sie weitere Informationen zu meiner Antwort? – SilverlightFox

+1

fernando, hast du jemals eine antwort auf diese frage bekommen, die nur curl benutzt? –

+0

Welche Version von 'curl' verwendest du? Ich kann dieses Verhalten anscheinend nicht replizieren, zumindest nicht, wenn ich eine localhost-URL "curl". – alexw

Antwort

1

Sie können eine intercepting proxy verwenden, um eine Anfrage an Ihre Anwendung zu erfassen und die Anfrage mit geänderten Parametern wiederholen, z. B. die unformatierte URL, die von der Anwendung angefordert wird.

Die kostenlose Version Burp Suite ermöglicht dies mit dem Repeater.

Es gibt jedoch Alternativen, die dies auch ermöglichen sollten, wie Zap, WebScarab und Fiddler2.

1

Ich bin nicht bewusst eine Möglichkeit, es über curl zu tun, aber Sie könnten immer telnet verwenden. Versuchen Sie diesen Befehl ein:

telnet www.example.com 80

Sie werden sehen:

Trying xxx.xxx.xxx.xxx... Connected to www.example.com. Escape character is '^]'.

Sie jetzt eine offene Verbindung zu www.example.com haben. Nun geben Sie einfach in Ihrem Befehl, um die Seite zu holen:

GET /directory/../ HTTP/1.1

Und Sie sollten Ihr Ergebnis sehen. z.B.

HTTP/1.1 400 Bad Request

11

Die Locke Fahne Sie suchen, ist curl --path-as-is.

Verwandte Themen