В соединении OWASP ZAP отказано: соединение (502 - плохой шлюз)

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

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

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

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


person Morvael    schedule 24.11.2016    source источник


Ответы (2)


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

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

person Simon Bennetts    schedule 24.11.2016
comment
Похоже, что наиболее вероятным виновником была сетевая безопасность / брандмауэр. Опубликованное решение в качестве ответа: stackoverflow.com/a/40784860/1286358 - person Morvael; 24.11.2016

Случайно нашел работоспособное решение.

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

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

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

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

person Morvael    schedule 24.11.2016
comment
Спасибо, что сообщили нам всем :) - person Simon Bennetts; 24.11.2016