MITMPROXY 使输出可供人类读取到文件

sem*_*tTA 9 proxy mitmproxy

我的系统:

Ubuntu 16.04
Mitmproxy version 3.0.4
Python version 3.5.2
Run Code Online (Sandbox Code Playgroud)

我已从mitmproxy服务器上的docs.mitmproxy.org成功安装。但现在我很困惑如何将日志 mitmproxy 保存到文件?我尝试使用mitmdump --mode transparent --showhost -p 9001 -w output_file

当我打开时output_file,它不是人类可读的。我阅读了文档并尝试了来自 mitmproxy 的 Github 的脚本,但没有任何线索。

有人知道如何将日志 mitmproxy 保存到文件中,但人类可读吗?
谢谢你!

sec*_*sec 6

您可能已经注意到,mitmproxy 生成二进制格式的流。如果您想以人类可读的格式保存流,您可以在运行 mitmproxy 时传递脚本来执行此操作。

\n

save.py

\n
from mitmproxy.net.http.http1.assemble import assemble_request, assemble_response\n\nf = open(\'/tmp/test/output.txt\', \'w\')\n\ndef response(flow):\n    f.write(assemble_request(flow.request).decode(\'utf-8\'))\n
Run Code Online (Sandbox Code Playgroud)\n

现在运行,输出将以人类可读的格式mitmproxy -s save.py写入。output.txt

\n

请注意响应,因为它们可能包含大量二进制数据。但如果您确实想以人类可读的格式编写响应,那么您可以添加f.write(assemble_response(flow.response).decode(\'utf-8\', \'replace\'))到脚本中。

\n

脚本的输出示例:

\n
\xe2\x9d\xaf\xe2\x9d\xaf tail -f output.txt\nGET / HTTP/1.1\nHost: example.com\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:77.0) Gecko/20100101 Firefox/77.0\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8\nAccept-Language: en-US,en;q=0.5\nAccept-Encoding: gzip, deflate\nConnection: keep-alive\nUpgrade-Insecure-Requests: 1\nIf-Modified-Since: Thu, 17 Oct 2019 07:18:26 GMT\nIf-None-Match: "3147526947"\nCache-Control: max-age=0\n
Run Code Online (Sandbox Code Playgroud)\n