Атака «человек посередине» (краулер) руководство по использованию mitmproxy

задняя часть HTTPS GitHub рептилия
Атака «человек посередине» (краулер) руководство по использованию mitmproxy

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, увидеть эффект:

Вы также можете обратиться к этим ссылкам:

Одновременно опубликовать блог:foofish.net

https://p1-jj.byteimg.com/tos-cn-i-t2oaga2asx/gold-user-assets/2017/7/16/4a84df1d3a79ea6aa60d4068ea549f6d~tplv-t2oaga2asx-image.image