OWASP ZAP 连接被拒绝:连接(502 - 网关错误)

OWASP ZAP Connection refused: connect (502 - Bad Gateway)

我正在尝试使用 OWASP ZAP 代理连接到我维护的网站。 然而,尽管代理正在为其他站点(https 和 http)连接工作,但我实际上只想分析 return 一条 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 捕获的请求 headers 在作为 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 Developer Edition)

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

我看到防火墙明确规定了阻止 ZAP 的特定规则,例如通过检查默认的 ZAP 用户代理。 该特定问题在这里不太可能出现,但您仍然可能会遇到类似的问题。 尝试在调整 headers.

的同时从 ZAP 重新发送请求

另一种可能性是它检查 ZAP 根证书中的某些内容,例如 DN。您可以将自己的根证书导入 ZAP - 尝试使用与 ZAP 非常不同的设置。 如果这不起作用,请转到 ZAP User Group,我们会继续尝试不同的方法 - 会有解决方案 ;)

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

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

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

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

基于此,我将采纳 Psiinon 的建议,即来自 ZAP 的请求链中的某处被某些安全/防火墙规则阻止。因为我无法控制这些,并且除了网络人员的模糊咕哝之外很难得到任何东西,我将继续我的可行解决方案。