Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
mitmproxy2swagger — Автоматически восстанавливать REST API путём захвата трафика | Kitploit
Инструменты/GitHubGitHub/alufers/mitmproxy2swagger
Обратная инженерияСбор информацииВеб-безопасностьБезопасность API
GitHubalufers/mitmproxy2swagger

mitmproxy2swagger

Автоматически восстанавливать REST API путём захвата трафика

Репозиторий
9.6k3701 месяц назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

mitmproxy2swagger

PyPI version Arch Linux repository

https://user-images.githubusercontent.com/5400940/168086818-c48f60ab-3f95-42eb-b435-c8b1a6326b81.mp4

Инструмент для автоматического преобразования захватов mitmproxy в спецификации OpenAPI 3.0. Это означает, что вы можете автоматически восстанавливать REST API, просто запуская приложения и захватывая трафик.


🆕 НОВОЕ!

Добавлена поддержка обработки HAR, экспортированного из инструментов разработчика браузера. Подробнее см. в разделе Использование - HAR.


Установка

Сначала вам понадобятся python3 и pip3.

root@kitploit:~
$ pip install mitmproxy2swagger
# ... or ...
$ pip3 install mitmproxy2swagger
# ... or ...
$ git clone [email protected]:alufers/mitmproxy2swagger.git
$ cd mitmproxy2swagger
$ docker build -t mitmproxy2swagger .

Затем клонируйте репозиторий и запустите mitmproxy2swagger, как показано в примерах ниже.

Использование

Mitmproxy

Чтобы создать спецификацию путем анализа HTTP-трафика, вам необходимо:

  1. Захватите трафик с помощью инструмента mitmproxy. Лично я рекомендую использовать mitmweb — встроенный веб-интерфейс mitmproxy.

    root@kitploit:~
    $ mitmweb
    Web server listening at http://127.0.0.1:8081/
    Proxy server listening at http://*:9999
    ...
    

    ВАЖНО

    Чтобы настроить ваш клиент на использование прокси, предоставляемого mitmproxy, обратитесь к документации mitmproxy для получения дополнительной информации.

  2. Сохраните трафик в файл потока.

    В mitmweb это можно сделать через меню "Файл" и выбрав "Сохранить":

    A screenshot showing the location of the "Save" option in the "File" menu

  3. Запустите первый проход mitmproxy2swagger:

    root@kitploit:~
    $ mitmproxy2swagger -i <path_to_mitmptoxy_flow> -o <path_to_output_schema> -p <api_prefix>
    # ... or ...
    $ docker run -it -v $PWD:/app mitmproxy2swagger mitmproxy2swagger -i <path_to_mitmptoxy_flow> -o <path_to_output_schema> -p <api_prefix>
    

    Обратите внимание, что вы можете использовать существующую схему, в этом случае она будет дополнена новыми данными. Вы также можете запускать его несколько раз с разными захватами потоков, захваченные данные будут безопасно объединены.

    <api_prefix> — это базовый URL API, который вы хотите восстановить. Вам нужно получить его, наблюдая за запросами в mitmproxy.

    Например, если приложение сделало такие запросы:

    root@kitploit:~
    https://api.example.com/v1/login
    https://api.example.com/v1/users/2
    https://api.example.com/v1/users/2/profile
    

HAR

  1. Захватите и экспортируйте трафик из инструментов разработчика браузера.

    В инструментах разработчика браузера перейдите на вкладку "Сеть" и нажмите кнопку "Export HAR".

    A screenshot showing where the export har button is located

  2. Продолжайте так же, как и с дампом mitmproxy. mitmproxy2swagger автоматически обнаружит файл HAR и обработает его.

Пример вывода

См. примеры. Там вы найдете сгенерированную схему и HTML-файл со сгенерированной документацией (через redoc-cli).

См. сгенерированный HTML-файл.

Разработка и вклад

Этот проект использует:

  • uv для управления зависимостями
  • prek для форматирования и линтинга кода
  • pytest для модульного тестирования

Для установки зависимостей:

root@kitploit:~
uv sync

Запуск линтеров:

root@kitploit:~
uv run prek run --all-files

Установка хуков prek:

root@kitploit:~
uv run prek install

Запуск тестов:

root@kitploit:~
uv run pytest

Запуск тестов с покрытием:

root@kitploit:~
uv run pytest --cov=mitmproxy2swagger

Лицензия

MIT

Скачать инструмент

Скорее всего, префиксом будет https://api.example.com/v1.

  • После первого прохода в файле схемы должен появиться раздел, подобный этому:

    root@kitploit:~
    x-path-templates:
      # Remove the ignore: prefix to generate an endpoint with its URL
      # Lines that are closer to the top take precedence, the matching is greedy
      - ignore:/addresses
      - ignore:/basket
      - ignore:/basket/add
      - ignore:/basket/checkouts
      - ignore:/basket/coupons/attach/{id}
      - ignore:/basket/coupons/attach/104754
    

    Вам нужно отредактировать файл схемы в текстовом редакторе и удалить префикс ignore: из тех путей, которые вы хотите сгенерировать. Вы также можете настроить параметры, указанные в путях.

  • Запустите второй проход mitmproxy2swagger:

    root@kitploit:~
    $ mitmproxy2swagger -i <path_to_mitmptoxy_flow> -o <path_to_output_schema> -p <api_prefix> [--examples]
    # ... or ...
    $ docker run -it -v $PWD:/app mitmproxy2swagger mitmproxy2swagger -i <path_to_mitmptoxy_flow> -o <path_to_output_schema> -p <api_prefix> [--examples]
    

    Запустите команду второй раз (с тем же файлом схемы). Она обнаружит отредактированные строки и сгенерирует описания конечных точек.

    Обратите внимание, что mitmproxy2swagger не перезаписывает существующие описания конечных точек; если вы хотите их перезаписать, удалите их перед вторым проходом.

    Передача --examples добавит примеры данных в запросы и ответы. Соблюдайте осторожность при использовании этой опции, так как она может добавить конфиденциальные данные (токены, пароли, личную информацию и т.д.) в схему. Передача --headers добавит данные заголовков в запросы и ответы. Соблюдайте осторожность при использовании этой опции, так как она может добавить конфиденциальные данные (токены, пароли, личную информацию и т.д.) в схему.