Last active
March 23, 2025 19:19
-
-
Save nderkach/bdb31b04fb1e69fa5346 to your computer and use it in GitHub Desktop.
Read a mitmproxy dump file and generate a curl command
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
# | |
# Simple script showing how to read a mitmproxy dump file | |
# | |
### UPD: this feature is now avaiable in mitmproxy: https://github.com/mitmproxy/mitmproxy/pull/619 | |
from libmproxy import flow | |
import json, sys | |
with open("mitmproxy_dump.txt", "rb") as logfile: | |
freader = flow.FlowReader(logfile) | |
try: | |
for f in freader.stream(): | |
request = f.request | |
print(request) | |
curl = 'curl -X ' + request.method + ' -d \'' + request.content + '\' ' + ' '.join(['-H ' + '"' + header[0] + ': ' + header[1] + '"' for header in request.headers]) | |
curl += " https://" + request.host + request.path | |
print(curl) | |
print("--") | |
except flow.FlowReadError as v: | |
print("Flow file corrupted. Stopped loading.") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I'm trying to get this script installed and I am not sure what I am doing wrong. I get the following error.
Traceback (most recent call last):
File "./read_mitmproxy_dumpfile.py", line 8, in <module>
from libmproxy import flow
File "/usr/lib/python2.7/dist-packages/libmproxy/flow.py", line 15, in <module>
from netlib.http import CONTENT_MISSING, Headers, http1
ImportError: cannot import name CONTENT_MISSING
I have tried installing netlib with pip
pip install netlib
and by cloning from the git repo and installing
git clone https://github.com/cortesi/netlib.git
cd netlib
sudo python setup.py install
neither are working. is there something else I need to do to get this script to work?