-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmitm.py
30 lines (25 loc) · 1013 Bytes
/
mitm.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env python3
## Usage: mitmdump -s mitm.py
from mitmproxy import http
import json
import csv
seen_ids = []
csvwriter = None
urllog = open(file="urls.txt", mode="w", buffering=1)
def response(flow: http.HTTPFlow):
global seen_ids, csvwriter
if flow.request.pretty_url.startswith("https://api.qonqr.com/v2/Zones/Pins"):
data = json.loads(flow.response.content)
has_new_data = False
for zone in data["zones"]:
if not csvwriter:
print(",".join(zone.keys()))
csvwriter = csv.DictWriter(open(file="zones.csv", mode="w", buffering=1, newline=''), fieldnames=zone.keys())
csvwriter.writeheader()
print(",".join(str(x or "") for x in zone.values()))
if zone["zoneId"] not in seen_ids:
has_new_data = True
seen_ids.append(zone["zoneId"])
csvwriter.writerow(zone)
if has_new_data:
print(flow.request.pretty_url, file=urllog)