在ssh隧道上的OWASP ZAP代理

时间:2016-09-13 00:14:09

标签: zap

我有远程机器运行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)

我失踪了什么?

2 个答案:

答案 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代理的服务。