MITMPROXY使输出人类可读文件

时间:2018-05-07 04:27:37

标签: proxy mitmproxy

我的系统:

Ubuntu 16.04
Mitmproxy version 3.0.4
Python version 3.5.2

我已经在我的服务器上成功安装了mitmproxydocs.mitmproxy.org。但现在我对如何将log mitmproxy保存到文件感到困惑?我尝试使用mitmdump --mode transparent --showhost -p 9001 -w output_file

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

任何人都知道如何将log mitmproxy保存到文件中,但是人类可读吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

您可能已经注意到,mitmproxy生成二进制格式的流。如果要以易于阅读的格式保存流,则可以在运行mitmproxy时传递脚本。

save.py

from mitmproxy.net.http.http1.assemble import assemble_request, assemble_response

f = open('/tmp/test/output.txt', 'w')

def response(flow):
    f.write(assemble_request(flow.request).decode('utf-8'))

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

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

脚本输出示例:

❯❯ tail -f output.txt
GET / HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:77.0) Gecko/20100101 Firefox/77.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Upgrade-Insecure-Requests: 1
If-Modified-Since: Thu, 17 Oct 2019 07:18:26 GMT
If-None-Match: "3147526947"
Cache-Control: max-age=0