- scripts/mitmproxy-to-har.py: Конвертер mitm → HAR - MITMPROXY.md: Инструкция по записи и конвертации - Два способа: mitmweb (GUI) и mitmdump + скрипт
3.6 KiB
3.6 KiB
Mitmproxy → HAR
Быстрый старт
Вариант 1: mitmweb (проще всего)
# 1. Запустить mitmweb
mitmweb --mode regular
# 2. Открыть в браузере
http://127.0.0.1:8081
# 3. Настроить прокси в браузере
# localhost:8081
# 4. Выполнить действия на Kwork
# 5. Экспорт: File → Export → HAR
Вариант 2: mitmdump + конвертация
# 1. Записать трафик
mitmdump -w kwork-dump.mitm
# 2. Конвертировать в HAR
python3 scripts/mitmproxy-to-har.py kwork-dump.mitm kwork-dump.har
# 3. Анализировать
jq '.log.entries | length' kwork-dump.har
Настройка прокси
Системный прокси (Linux)
export http_proxy=http://127.0.0.1:8081
export https_proxy=http://127.0.0.1:8081
Firefox
- Настройки → Прокси
- Manual proxy configuration
- HTTP Proxy: 127.0.0.1:8081
- ☑ Also use for HTTPS
Chrome
# Запустить с прокси
google-chrome --proxy-server="127.0.0.1:8081"
Установка сертификата
# 1. Открыть в браузере
http://mitm.it
# 2. Скачать сертификат для вашей ОС
# 3. Установить в доверенные
# Linux:
sudo cp mitmproxy-ca-cert.pem /usr/local/share/ca-certificates/
sudo update-ca-certificates
# 4. Перезапустить браузер
Фильтрация трафика
# Только Kwork
mitmdump -w kwork.mitm --set 'filter=~u kwork\.ru'
# Только API
mitmdump -w kwork-api.mitm --set 'filter=~u /api/'
# Исключить статику
mitmdump -w kwork.mitm --set 'filter=!~u \.(css|js|png|jpg|gif|svg)'
Скрипт для записи Kwork
#!/bin/bash
# record-kwork.sh
echo "Starting mitmproxy recording for Kwork..."
echo "Configure your browser to use proxy: localhost:8081"
echo "Press Ctrl+C when done"
mitmdump \
-w kwork-session.mitm \
--set 'filter=~u kwork\.ru' \
--set 'ignore_hosts=~u (cdn|counter|yandex|google)' \
--set 'keep_host_headers=true'
echo "Converting to HAR..."
python3 scripts/mitmproxy-to-har.py kwork-session.mitm kwork-session.har
echo "Done! File: kwork-session.har"
echo "Analyze with: jq '.log.entries | length' kwork-session.har"
Анализ записанного HAR
# Количество запросов
jq '.log.entries | length' kwork-session.har
# JSON эндпоинты
jq '[.log.entries[] | select(.response.content.mimeType | test("json"; "i")) | .request.url | split("?")[0]] | unique' kwork-session.har
# Самые большие ответы
jq '[.log.entries[] | {url: .request.url, size: .response.bodySize}] | sort_by(.size) | reverse | .[0:10]' kwork-session.har
# Авторизация
jq '[.log.entries[].request.headers[] | select(.name | ascii_downcase | test("authorization|cookie"; "i"))] | unique' kwork-session.har
Типичные проблемы
SSL ошибки
# Игнорировать SSL ошибки
mitmdump --set 'ignore_hosts=.*'
# Или отключить проверку
mitmdump --set 'ssl_insecure=true'
WebSocket
# WebSocket не экспортируется в HAR
# Используйте --show-websocket для отладки
mitmdump --show-websocket
Сжатый трафик
# mitmproxy автоматически распаковывает
# Если нужно сырое:
mitmdump --set 'rawtcp=true'
Updated: 2026-03-22