Autoswagger: легкая проверка на доступность без авторизации
23 октября 2025 г.·320 views

🛠 Autoswagger: легкая проверка на доступность без авторизации

Салют,

Сталкивался пару раз с общим описанием Autoswagger by intruder.io. Решил посмотреть быстрый и легковесный инструмент.

Инструмент позволяет пробежаться по торчащим ручкам API наружу у продукта. Поэтому мне захотелось поделиться с тобой его особенностями. Тип лицензии: BSD 3-Clause License. Установка как python библиотекf, для использования в CLI.

Какой функционал может:

- Сканирует домены для обнаружения открытой документации API, где есть возможность указания отдельно OpenAPI спецификации

- Анализ спецификации и формирование списка конечных точек для тестирования. Отправляет запросы с допустимыми параметрами из документации и помечает любые конечные точки, возвращающие данные без надлежащего контроля доступа, т.е. без ошибок 401 или 403

Пример: сработал явно на вектор по 429 - Too Many Requests и позволил понять, что надо смотреть в сторону тестирования лимитов запросов (простое)

- Определяет конфиденциальные данные в ответе, как учетные данные, персональную информацию PII

- Использование флага --brute, чтобы попытаться обойти проверки, что помогает выявить уязвимости в конечных точках, которые отклоняют стандартные входные данные, но принимают определённые форматы данных, значений

Применение:

git clone git@github.com:intruder-io/autoswagger.git

pip install -r requirements.txt

python3 autoswagger.py -h

autoswagger--help

python3 autoswagger.py https://example.ru/api/users/swagger/v1/swagger.json -v -risk -all

Флаги:

autoswagger.py [-h] [-v] [-risk] [-all] [-product] [-stats] [-rate RATE] [-b] [-json] [urls ...]

-h, --help # Показать это справочное сообщение и выйти

-v, --verbose # Включить подробный вывод

-risk # Включить в тестирование запросы, отличные от GET

-all # Включить все коды состояния HTTP в результаты, исключая 401 и 403

-product # Вывести все эндпоинты в формате JSON, пометив те, что содержат PII или имеют большие ответы

-stats # Показать статистику сканирования. Включается в JSON при использовании -product или -json

-rate RATE # Установить лимит скорости в запросах в секунду

-b, --brute # Включить исчерпывающее тестирование значений параметров

-json # Вывести результаты в формате JSON в режиме по умолчанию

Сценарии:

1. Режим автообнаружения OpenAPI-спецификации

- принимает доменное имя - example.com

- выполняет сканирование целевого домена, проверяя стандартные пути к OpenAPI/ Swagger-документации типа /openapi.json, /swagger.json, /api-docs, /v3/api-docs

- если спецификация обнаружена, инструмент парсит её и извлекает все доступные эндпоинты

- для каждого эндпоинта выполняет автоматизированные запросы GET, POST, PUT, DELETE и др., если они указаны, без авторизации, анализируя ответы: статус-коды, тело ответа, headers

2. Режим работы с предоставленной спецификацией

- инструмент принимает на вход одну или несколько OpenAPI-спецификаций в формате JSON/YAML, локальные файлы или URL

- парсит каждую спецификацию, извлекая все эндпоинты и поддерживаемые HTTP-методы

- для каждого эндпоинта выполняет автоматизированные запросы без авторизации, фиксируя отклонения - ошибки 5xx, неожиданные 200/403, утечки данных и т. д.

Итого: инструмент имеет быстрый запуск и минимальные зависимости, легковесный, не требует сборки проекта, работает по исходникам, а также поверхностный как легкий старт и ты можешь с ним работать без проблем, просто прочекав начальный вектор.

#toolchain #reserch #dast

#toolchain#reserch#dast
Открыть в Telegram