java.net.ConnectException: Connection refused: connect on spidering

344 views
Skip to first unread message

vamsi krishna

unread,
Feb 2, 2017, 7:16:05 AM2/2/17
to OWASP ZAP User Group
Hi All, 

I am invoking zap server through processBuilder from my java code.  
Process pro = new ProcessBuilder(resDir+"ZedAttackProxy//zap.bat", "-daemon", "-host", "127.0.0.1", "-port " + ZAP_PORT).start();

I am invoking the client API
ClientApi api = new ClientApi("127.0.0.1", ZAP_PORT);

When i am attempting to call spider scan, i get a connection refused exception and i doubt if the process started through processBuilder has started ZAP . 
this is the line that is causing  the exception. 
ApiResponse resp = api.spider.scan(ZAP_API_KEY, TARGET, null, null, null, null);

and below is the complete exception stack trace. 
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
at sun.net.www.http.HttpClient$1.run(HttpClient.java:484)
at sun.net.www.http.HttpClient$1.run(HttpClient.java:482)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.http.HttpClient.privilegedOpenServer(HttpClient.java:481)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:522)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
at sun.net.www.http.HttpClient.New(HttpClient.java:308)
at sun.net.www.http.HttpClient.New(HttpClient.java:326)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:996)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:975)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:850)
at org.zaproxy.clientapi.core.ClientApi.getConnectionInputStream(ClientApi.java:313)
at org.zaproxy.clientapi.core.ClientApi.callApiDom(ClientApi.java:305)

Can someone help me. 

regards, 
Vamsi. 

thc...@gmail.com

unread,
Feb 2, 2017, 7:26:53 AM2/2/17
to zaprox...@googlegroups.com
Hi.

Some questions:
- Is the path to zap.bat correct? Should have just a "/" ?
- Did you check the exit value of the process?
- Is the code waiting for ZAP to fully start? (The API client has a
method to wait for ZAP's proxy to be ready to receive API calls
("waitForSuccessfulConnectionToZap")).

Best regards.

vamsi krishna

unread,
Feb 3, 2017, 5:03:18 AM2/3/17
to OWASP ZAP User Group
Thankyou for those inputs. 

Path to zap is correct and processBuilder doesnt show any errors while creating process.   I was not waiting for the zap to start fully.  Hence added "waitForSuccessfulConnectionToZap" code.  Process exit code is 1.  Does this mean it exited with some error.  

I get a timeout after waiting for specified seconds for zap to wait. 

Exception : Unable to connect to ZAP's proxy after 150000 milliseconds.
java.lang.RuntimeException: Unable to connect to ZAP's proxy after 150000 milliseconds.

Regards,
Vamsi. 
Reply all
Reply to author
Forward
0 new messages