How to capture traffic with fiddler while using another proxy - proxy

To access some websites that I need to test I need to plugin some specific proxies on firefox. However when I set my proxy through firefox or any browser, fiddler doesnt capture anymore request, due that it also uses its own proxy to get the requests. Is there any way I could capture traffic using fiddler while at the same time Im using an external proxy using any browser?

Fiddler allows you to chain to an upstream proxy, so traffic first goes to Fiddler, then goes from Fiddler to another proxy.
Fiddler will automatically chain to any proxy configured in Internet Explorer.
To manually chain to a different proxy, in Fiddler, click Tools > Fiddler Options and go to the Gateway tab. Specify the desired upstream proxy there.

Related

How to intercept HTTPS traffic on machine without proxy?

I need to develop an app that intercepts HTTPS traffic on the machine and change it.
One approach is to use a local proxy, like Fiddler works.
I also saw HTTP Debugger (https://www.httpdebugger.com/) which works in a similar way to Fiddler but say they don't use a proxy.
Do you know what technology HTTP Debugger are using in order to intercept HTTPS traffic without proxy?
One way is using a pre-master secret key.
Here is an example with Wireshark: https://www.comparitech.com/net-admin/decrypt-ssl-with-wireshark/
Wireshark using WinPcap https://www.winpcap.org/ network capture library to intercept traffic, so there is no proxy involved.
EDIT: I don't know how exactly works HTTP Debugger, but if there is no proxy the only way is to decrypt traffic on network level.

Using Charles to debug HTTP request to an endpoint with unusual port number which needs a proxy to be accessible

I'm using Charles as a proxy to debug some HTTP requests. However, one of the endpoints is www.myendpoint.com:9064 and I need a proxy (myproxy.com:80) to access it. When I try to debug it with charles it fails to connect to that endpoint. Do I need to do any extra configuration for this case?
Charles Proxy automatically tries to configure your system's proxy (in Windows and macOS) so by this many applications, such as browsers, use it automatically.
By what you say in your comment, you seem to be developing an application, which I guess you configured to use the myproxy.com:80 proxy.
Being this the case, what you need to do is to configure your application to use the Charles Proxy, which usually opens up at your localhost:8888, instead of the myproxy:80.
This will make your application access the internet through the Charles proxy and thus your HTTP request will start to appear to the Charles overview window, but the requests will still not be able to reach www.myendpoint.com:9064.
To do so, you need to configure your proxy values (myproxy.com:80) on the External Proxy Settings (Proxy -> External Proxy Settings...) on Charles.
This will make Charles be able to reach your endpoint.

How do I setup OWASP Zap as an MITM proxy to debug HTTP web service calls?

I want to capture HTTP requests and responses on OS X. The requests are being sent from a Ruby-on-Rails server to an Elasticsearch server, thus I cannot use the builtin logging provided by Chrome or another browser.
In my elasticsearch.yaml, I have changed Elasticsearch to use port 9400. Using a web browser, I verified that it now honors requests to that port and not 9200.
In ZAP, I have set Options > Local Proxy > Port to 9200.
I expect my Rails app to continue to send messages to port 9200, have them intercepted by ZAP and forwarded to Elasticsearch on port 9400, have Elasticsearch send a response back to ZAP and have ZAP forward that along to the Rails app.
I do not see what I expect happening. Attempts using a web browser (in place of the rails app) to request from port 9200 return "Bad Format".
What additional configuration do I need to do to ZAP, and how do I tell it to start? How do I tell it to forward requests to port 9400?
UPDATE: I think what I am asking for is called a "reverse proxy".
UPDATE: On the google group for OWASP, I learned that ZAP is not used as a reverse proxy. I ended up going with mitmproxy, which was easy to install and use and has fewer features, hence is easier to understand.
Under the heading I would not (only) understand how to redirect a port with a proxy (specific), but how ZAP can be set up as a MITM proxy (general). Therefore a general addition for the ethical hackers out there:
ZAP is a proxy. For example, as soon as ZAP is set up as the proxy in the browser settings, it can read (if not encyrpted) the communication between a webserver and the browser. I tested firefox and ZAP V 2.9.0.
To manipulate the HTTP-traffic with OWASP ZAP, I found the following possibility: First in the tools menu tab it is needed to set the "Toogle Break on All Requests" and "Toogle Break on All Responses" (the green traffic light in the toolbar will turn red). Afterwards every single request and response comes before it is sent in a tab of the workspace window called "Break". Here it is easy to manipulate them before sending them with the "Submit and Step to Next Request or Response" menu item. With "Submit and Continue to next Breakpoint" it is possible to turnoff the break until the next breakpoint. Also ports could be manipulated here.
But to your specific case: If the communication would be between the browser (with OWASP ZAP set as proxy under port 9200) and a webserver, the requested port in the browser needs to be port 9400. Tested for firefox would the browser handle it in the background, to send the traffic first to ZAP with port 9200. But as it seems from your question, your Ruby-on-Rails server requires that the proxy dynamically redirects the ports.

Fiddlercore: Unable to intercept network traffic, when we manually set no proxy in firefox.

I have used C#FiddlerCore API, to intercept network traffic. Fiddlercore set proxy into our machine.
I am able to capture network traffic through all browser.
But in firefox there is way to set proxy, we can even set No Proxy in firefox.
When i set No Proxy in firefox than fiddlercore is unable to intercept firefox network, However fiddlercore can intercept other browser's network traffic.
My question is after setting proxy through fiddler, how firefox work in no proxy mode..?
How can we even intercept network traffic, even if we set no proxy in firefox.?
Here is how I set no proxy in firefox.
Fiddler is a proxy, it sees only the traffic that is sent to it.
By default, most Windows browsers (Safari, Chrome, IE, etc) use the IE proxy setting seen inside IE's Tools > Internet Options > Connections > LAN Settings. Fiddler and FiddlerCore point that setting to Fiddler/FiddlerCore when they are "attached" as the system proxy.
By default, current versions of Firefox will also respect that setting ("Use system proxy settings"). If you manually set Firefox to not use any proxy, then its traffic will not be sent to Fiddler/FiddlerCore even if they are configured as the system proxy.

Open source HTTP or HTTPS proxy

I want to log all HTTP requests made by the browser to a file, so I thought I can run a HTTP/S proxy locally and do this. However, the proxies at proxies.xhaus.com/ don't meet my needs - either no HTTPS support or no logging. Do anyone of you know of a proxy that can do both HTTPS and HTTP and allow me to log the browser traffic to a file?
Squid can do that.
http://wiki.squid-cache.org/Features/SslBump
Squid was also my first thought given your description, but for development use you might prefer a more powerful intercepting proxy like:
Fiddler2
Paros Proxy
Burp Suite (despite the name, my personal favorite)

Resources