Я пытаюсь найти способ запустить Mitmproxy из скрипта Python (что я и сделал) и сохранить любой трафик в файл дампа (с чем мне нужна помощь).
Погуглив, посмотрев на проблемы gitmproxy git и прочитав пример кода, вот что у меня есть на данный момент:
from mitmproxy import proxy, options
from mitmproxy.tools.dump import DumpMaster
from mitmproxy.addons import core
class AddHeader:
def __init__(self):
self.num = 0
def response(self, flow):
self.num = self.num + 1
print(self.num)
flow.response.headers["count"] = str(self.num)
addons = [
AddHeader()
]
opts = options.Options(listen_host='127.0.0.1', listen_port=8080)
pconf = proxy.config.ProxyConfig(opts)
m = DumpMaster(None)
m.server = proxy.server.ProxyServer(pconf)
# print(m.addons)
m.addons.add(addons)
print(m.addons)
# m.addons.add(core.Core())
try:
m.run()
except KeyboardInterrupt:
m.shutdown()
Проблема в том, что это создает ошибку AttributeError: No such option: body_size_limit
, которая, похоже, устраняется с помощью master.addons.add(core.Core)
, но это основное дополнение уже существует в DumpMaster, поэтому возникает другая ошибка.
Проверяя надстройки, которые в настоящее время загружаются DumpMaster
, я вижу, что надстройка сохранения в файл загружена, но я не понимаю, как получить к ней доступ, чтобы любой трафик, проходящий через прокси-сервер, независимо от того, является ли это запросом, ответом, ws или tcp можно записать в файл дампа
Спасибо!
Вот отредактированный список загружаемых дополнений
- Объект mitmproxy.addons.streambodies.StreamBodies по адресу 0x111542da0>
- mitmproxy.addons.save.Сохранить объект по адресу 0x111542dd8>
- Объект mitmproxy.addons.upstream_auth.UpstreamAuth по адресу 0x111542e10>