I am trying to redirect one page to another by using mitmproxy and Python. I can run my inline script together with mitmproxy without issues, but I am stuck when it comes to changing the URL to another URL. Like if I went to google.com it would redirect to stackoverflow.com
def response(context, flow):
print("DEBUG")
if flow.request.url.startswith("http://google.com/"):
print("It does contain it")
flow.request.url = "http://stackoverflow/"
This should in theory work. I see http://google.com/
in the GUI of mitmproxy (as GET) but the print("It does contain it")
never gets fired.
When I try to just put flow.request.url = "http://stackoverflow.com"
right under the print("DEBUG")
it won't work neither.
What am I doing wrong? I have also tried if "google.com" in flow.request.url
to check if the URL contains google.com
but that won't work either.
Thanks
The following mitmproxy
script will
mydomain.com
to newsite.mydomain.com
/getjson?
to a new one `/getxmlOverwrite the request header Host
to pretend to be the origi
import mitmproxy
from mitmproxy.models import HTTPResponse
from netlib.http import Headers
def request(flow):
if flow.request.pretty_host.endswith("mydomain.com"):
mitmproxy.ctx.log( flow.request.path )
method = flow.request.path.split('/')[3].split('?')[0]
flow.request.host = "newsite.mydomain.com"
flow.request.port = 8181
flow.request.scheme = 'http'
if method == 'getjson':
flow.request.path=flow.request.path.replace(method,"getxml")
flow.request.headers["Host"] = "newsite.mydomain.com"