2014-07-25 22:44:03 +00:00
|
|
|
# Usage: mitmdump -s "modify_response_body.py mitmproxy bananas"
|
2014-08-06 23:30:47 +00:00
|
|
|
# (this script works best with --anticache)
|
2016-06-14 01:17:09 +00:00
|
|
|
import sys
|
|
|
|
|
2016-02-16 19:49:10 +00:00
|
|
|
from mitmproxy.models import decoded
|
2014-07-25 22:44:03 +00:00
|
|
|
|
|
|
|
|
2016-07-08 01:37:33 +00:00
|
|
|
state = {}
|
|
|
|
|
|
|
|
|
2016-07-15 01:22:20 +00:00
|
|
|
def start():
|
2016-06-14 01:17:09 +00:00
|
|
|
if len(sys.argv) != 3:
|
2016-03-15 14:36:10 +00:00
|
|
|
raise ValueError('Usage: -s "modify_response_body.py old new"')
|
2015-05-30 00:03:28 +00:00
|
|
|
# You may want to use Python's argparse for more sophisticated argument
|
|
|
|
# parsing.
|
2016-07-08 01:37:33 +00:00
|
|
|
state["old"], state["new"] = sys.argv[1].encode(), sys.argv[2].encode()
|
2014-07-25 22:44:03 +00:00
|
|
|
|
|
|
|
|
2016-07-08 01:37:33 +00:00
|
|
|
def response(flow):
|
2014-07-25 22:44:03 +00:00
|
|
|
with decoded(flow.response): # automatically decode gzipped responses.
|
2015-05-30 00:03:28 +00:00
|
|
|
flow.response.content = flow.response.content.replace(
|
2016-07-08 01:37:33 +00:00
|
|
|
state["old"],
|
|
|
|
state["new"]
|
|
|
|
)
|