mitmproxy — это аббревиатура от man-in-the-middle proxy, что переводится как прокси-инструмент «человек посередине», который можно использовать для перехвата, изменения и сохранения HTTP/HTTPS-запросов. Представлен в виде терминала командной строки, по работе аналогичен Vim, и предоставляет подключаемый модуль mitmweb, который представляет собой инструмент визуализации, аналогичный режиму разработчика браузера Chrome.
Это инструмент с открытым исходным кодом, разработанный на основе Python. Самое главное, что он предоставляет Python API. Вы можете полностью контролировать запросы и ответы через код Python. Это то, что другие инструменты не могут сделать. Вот почему мне нравится этот инструмент , один.
Установить
sudo pip3 install mitmproxy
запускать
mitmproxy
#或者指定端口
mitmproxy -p 8888
После запуска mitmproxy по умолчанию открывается порт 8080. Команда mitmproxy не поддерживает платформу Windows, и вместо нее необходимо использовать команду mitmdump или mitmweb. Система Windows также может загрузить свой EXE-файл с официального сайта для установки.
После того, как мобильный телефон или браузер настроил прокси-сервер, вы можете выполнить анализ перехвата пакетов.Откройте браузер, чтобы посетить определенный веб-сайт, и эффект, наблюдаемый mitmproxy, будет следующим:
В настоящее время всего 136 запросов, в настоящее время выбран 16-й запрос, метод запроса — GET, возвращаемый код состояния — 200, а порт прокси — 8080. Вы можете переключаться между различными запросами вверх и вниз, нажимая J и Клавиши K. См. сведения о текущем выбранном запросе, включая три части: запрос, ответ и сведения.
горячие клавиши mitmproxy
? 帮助文档
q 返回/退出程序
b 保存response body
f 输入过滤条件
k 上
j 下
h 左
l 右
space 翻页
enter 进入接口详情
z 清屏
e 编辑
r 重新请求
Конфигурация захвата пакетов HTTPS
Для HTTPS-запросов, чтобы нормально захватить запрос, вам необходимо сначала установить сертификат. Это то, что вы видите для запроса без установленного сертификата.
открытый URLmitm.it, выберите соответствующую платформу и загрузите сертификат HTTPS. И выполните соответствующие шаги для установки
mitmweb
$ mitmweb
После запуска команды mitmweb там будет веб-страница, похожая на инструмент разработчика Chrome, который функционирует как mitmroxy. Вы можете просмотреть сведения о каждом запросе, включая запрос, ответ, ответ и модифицируйте запрос и ответ, включая фильтрацию, повторно Общая функция, такая как запрос.
mitmdump
$ mitmdump -s script.py
Самая большая особенность команды mitmdump заключается в том, что вы можете настраивать сценарий.Вы можете программно управлять содержимым запроса или ответа в сценарии для анализа, изменения и сохранения данных.
# script.py
from mitmproxy import http
def request(flow: http.HTTPFlow) -> None:
# 将请求新增了一个查询参数
flow.request.query["mitmproxy"] = "rocks"
def response(flow: http.HTTPFlow) -> None:
# 将响应头中新增了一个自定义头字段
flow.response.headers["newheader"] = "foo"
print(flow.response.text)
при запросе в браузереhttpbin.org/get, увидеть эффект:
Вы также можете обратиться к этим ссылкам:
- Официальная документация:docs.mitmproxy.org/stable/
- Адрес гитхаба:GitHub.com/mTM proxy/no…
- Еще примеры скриптов:GitHub.com/mTM proxy/no…
- Как установить прокси в браузере Chrome:Опыт Baidu.com/article/Oh52…
Одновременно опубликовать блог:foofish.net