OWASP ZAP Соединение отказано: подключиться (502 - Bad Gateway)

Я пытаюсь использовать 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.) В настройках моего ПК / браузера / Fiddler не задана цепочка прокси-серверов в ZAP или в других местах.

2.) ZAP-прокси работает по умолчанию по адресу localhost: 8080

3.) Динамический сертификат ZAP был сохранен и импортирован в тестовый браузер (Firefox Developer Edition)

Учитывая, что ZAP работает для других сайтов, я нахожусь в кирпичной стене относительно того, что может быть здесь не так, кто-нибудь может помочь?

2 ответа

Решение

Я нашел подходящее решение случайно.

Поскольку я не был уверен, был ли Запрос, который я видел в ZAP, запросом, который он получил от браузера, или запросом, на который он пересылал (или оба). Поэтому я не был уверен, что проверка моего запроса работала в Fiddler.

Поэтому я настроил ZAP пересылать все свои запросы в Fiddler на той же машине, чтобы я мог точно знать, что именно было отправлено.

Как только я это сделал, я смог получить доступ к веб-сайту и записывать запросы / ответы как в Fiddler, так и в ZAP.

Исходя из этого, я собираюсь согласиться с предложением Псионона о том, что где-то в цепочке запросы от ZAP блокируются некоторыми правилами безопасности / брандмауэра. Поскольку я не контролирую их и изо всех сил пытаюсь получить от сетевых ребят что-либо, кроме смутного ворчания, я собираюсь продолжить свое работоспособное решение.

Я видел брандмауэры, которые явно имели определенные правила для блокировки ZAP, например, проверяя пользовательский агент ZAP по умолчанию. Эта конкретная проблема вряд ли будет иметь место, но вы все еще можете столкнуться с подобной проблемой. Попробуйте переслать запрос изнутри ZAP, настраивая заголовки.

Другая возможность состоит в том, что он проверяет что-то в корневом сертификате ZAP, например, DN. Вы можете импортировать свои собственные корневые сертификаты в ZAP - попробуйте, используя настройки, совершенно отличные от ZAP. Если это не сработает, загляните в группу пользователей ZAP, и мы продолжим пробовать разные вещи - для этого найдется решение;)

Другие вопросы по тегам