验证web服务器中的路径遍历漏洞



我想验证我的web应用程序没有路径遍历漏洞。

我正在尝试使用curl,像这样:

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

我希望HTTP请求显式地对/directory/../ URL进行,以测试涉及代理的特定nginx规则不容易受到路径遍历的影响。也就是说,我希望发送这个HTTP请求:

> GET /directory/../ HTTP/1.1

但是curl正在将请求重写为/ URL,如输出所示:

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

是否可以在此测试中使用curl,强制它在请求中传递确切的URL ?如果没有,什么是合适的方式?

您要查找的curl标志是curl --path-as-is

我不知道如何通过curl做到这一点,但你总是可以使用telnet。试试这个命令:

telnet www.example.com 80

你会看到:

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

您现在有一个打开的连接到www.example.com。现在只需输入命令来获取页面:

GET /directory/../ HTTP/1.1

你应该看到你的结果。例如

HTTP/1.1 400 Bad Request

您可以使用拦截代理捕获对您的应用程序的请求,并重复更改参数的请求,例如从应用程序请求的原始URL。

免费版的Burp Suite将允许使用Repeater。

然而,也有其他的选择,如Zap, WebScarab和Fiddler2。

相关内容

  • 没有找到相关文章

最新更新