1

我正在尝试使用 OWASP ZAP 代理与我维护的网站的连接。但是,尽管代理正在为其他站点(https 和 http)连接到我实际要分析的站点,但仅返回 502 - Bad gateway 消息,其中包含以下文本:

ZAP Error [java.net.ConnectException]: Connection refused: connect

Stack Trace:
java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.connect(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.<init>(Unknown Source)
    at sun.security.ssl.SSLSocketFactoryImpl.createSocket(Unknown Source)
    at org.parosproxy.paros.network.DecoratedSocketsSslSocketFactory.createSocket(Unknown Source)
    at org.parosproxy.paros.network.SSLConnector.createSocket(Unknown Source)
    at org.apache.commons.httpclient.HttpConnection.open(Unknown Source)
    at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(Unknown Source)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(Unknown Source)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
    at org.parosproxy.paros.network.HttpSender.executeMethod(Unknown Source)
    at org.parosproxy.paros.network.HttpSender.runMethod(Unknown Source)
    at org.parosproxy.paros.network.HttpSender.send(Unknown Source)
    at org.parosproxy.paros.network.HttpSender.sendAuthenticated(Unknown Source)
    at org.parosproxy.paros.network.HttpSender.sendAndReceive(Unknown Source)
    at org.parosproxy.paros.network.HttpSender.sendAndReceive(Unknown Source)
    at org.parosproxy.paros.core.proxy.ProxyThread.processHttp(Unknown Source)
    at org.parosproxy.paros.core.proxy.ProxyThread.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

我通过浏览器请求的 URL 在不通过 OWASP ZAP 代理时可以正常工作,并且 ZAP 捕获的请求标头在作为 Raw 复制并粘贴到 Fiddler 请求中时也可以正常工作,如下所示:

GET https://nottellingyou.net/ HTTP/1.1
Host: nottellingyou.net
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
DNT: 1
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0

仅供参考,

1.) ZAP 中或我的 PC / 浏览器 / Fiddler 设置中的其他地方没有设置代理链。

2.) ZAP 代理在默认地址 localhost:8080 运行

3.) ZAP 动态证书已保存并导入测试浏览器(Firefox 开发版)

鉴于 ZAP 正在为其他网站工作,我不知道这里可能出了什么问题,有人可以帮忙吗?

4

2 回答 2

1

我见过防火墙有明确的特定规则来阻止 ZAP,例如通过检查默认的 ZAP 用户代理。此处不太可能出现该特定问题,但您仍可能遇到类似问题。尝试在调整标头时从 ZAP 中重新发送请求。

另一种可能性是它检查 ZAP 根证书中的某些内容,例如 DN。您可以将自己的根证书导入 ZAP - 尝试使用与 ZAP 完全不同的设置。如果这不起作用,请前往ZAP 用户组,我们将继续尝试不同的事情 - 会有解决方案;)

于 2016-11-24T09:17:22.997 回答
1

我偶然发现了一个可行的解决方案。

因为我不确定我在 ZAP 中看到的请求是它从浏览器收到的请求还是它转发的请求(或两者兼而有之)。因此,我不确定我在 Fiddler 中检查请求是否有效。

因此,我将 ZAP 设置为将其所有请求转发到同一台机器上的 Fiddler,这样我就可以确定发送的确切内容。

一旦我这样做了,我就能够访问该网站,并在 Fiddler 和 ZAP 中记录请求/响应。

基于此,我将接受 Psiinon 的建议,即来自 ZAP 的链上某处请求被某些安全/防火墙规则阻止。由于我无法控制这些,并且除了模糊的咕哝声之外,我将继续使用我的可行解决方案。

于 2016-11-24T11:09:27.100 回答