我有远程机器运行docker与owaspzap图像。 当我直接连接到机器并运行命令
时curl http://localhost:8080
我获得了默认的zap代理主页。但是当我设置一个ssh隧道到机器(假设我将本地端口52000绑定到远程端口8080)时运行时出错
curl http://localhost:52000
ZAP错误[java.net.ConnectException]:拒绝连接
堆栈跟踪:java.net.ConnectException:拒绝连接 java.net.PlainSocketImpl.socketConnect(Native Method)at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 在java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)at java.net.Socket.connect(Socket.java:579)at java.net.Socket.connect(Socket.java:528)at java.net.Socket。(Socket.java:425)at java.net.Socket。(Socket.java:280)at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:80) 在 org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:122) 在org.apache.commons.httpclient.HttpConnection.open(未知来源) 在 org.apache.commons.httpclient.MultiThreadedHttpConnectionManager $ HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361) 在 org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(未知 来源)at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(未知 来源)at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397) 在org.parosproxy.paros.network.HttpSender.executeMethod(未知 来源)org.parosproxy.paros.network.HttpSender.runMethod(未知) 来源)org.parosproxy.paros.network.HttpSender.send(未知 来源)at org.parosproxy.paros.network.HttpSender.sendAuthenticated(未知 来源)at org.parosproxy.paros.network.HttpSender.sendAndReceive(未知来源) 在org.parosproxy.paros.network.HttpSender.sendAndReceive(未知 来源)at org.parosproxy.paros.core.proxy.ProxyThread.processHttp(未知 来源)org.parosproxy.paros.core.proxy.ProxyThread.run(未知) 来自java.lang.Thread.run(Thread.java:745)
我失踪了什么?
答案 0 :(得分:0)
我认为ZAP没有将URL视为其收听的URL。 它认为它在http://localhost:8080上听,你正在请求http://localhost:52000所以它可能试图连接到该端口。 可能值得尝试在两台机器上使用相同的端口吗?
答案 1 :(得分:0)
对我有用的解决方案是在远程控制台上设置透明的http代理,将本地流量从http://localhost:5000(或您想要的任何其他随机空闲端口)重定向到http://localhost:8080(ZAP代理端口)。
然后我从localhost:52000设置ssh隧道到远程机器localhost:5000,我能够通过ssh隧道到达owasp代理。
我认为ZAP代理网络实现似乎有问题 - 因为我在我的隧道上也有一些其他服务,ZAP代理是唯一需要透明http代理的服务。