'How do I connect mitmproxy to another proxy outside of my control?
The process would be that the browser send a request to MITMproxy and then generate a request that gets sent to target proxy server which isn't controlled by us. The proxy server would send a response to MITMproxy which would then relay that response to the browser.
How would I go about doing this?
Solution 1:[1]
I was able to achieve what you ask with the following. You need to enable the upstream mode and upstream auth (in case you have some username/password for your proxy):
mitmproxy --mode upstream:https://HOSTNAME:PORT --upstream-auth USER:PASSWORD
Then you can check it's working with a simple curl:
curl -x http://localhost:8080 -k https://api.ipify.org/
This will forward your request to mitmproxy which will forward it to your other proxy.
Hope it helps!
Solution 2:[2]
If you'd like to do this not from the script, you can change the upstream server with get_upstream_server from server.config see [mitmproxy config] (https://github.com/mitmproxy/mitmproxy/blob/42d4a2fae96b8b4ba35d3a88e20f278d79a0ccc6/libmproxy/proxy.py). For example:
self.server.config.get_upstream_server = proxy.ConstUpstreamServerResolver(cmdline.parser_server_spec("http://upstreamserver:port"))
Solution 3:[3]
I think it's the -U option:
command-line -U http://hostname[:port]
source: http://docs.mitmproxy.org/en/stable/features/upstreamproxy.html
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | jpbalarini |
| Solution 2 | user2573072 |
| Solution 3 | ospider |
