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

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

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

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

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

Категории

Все категории
Loading categories
apidetector — Многопоточный сканер для обнаружения открытых конечных точек Swagger/OpenAPI на веб-доменах и поддоменах с автоматическим обнаружением XSS, генерацией PoC и фильтрацией ложных срабатываний для оценки безопасности API. | Kitploit
Инструменты/GitHubGitHub/brinhosa/apidetector
РазведкаСканеры уязвимостейТестирование безопасности APIСбор информацииВеб-безопасность
GitHubbrinhosa/apidetector

apidetector

Многопоточный сканер для обнаружения открытых конечных точек Swagger/OpenAPI на веб-доменах и поддоменах с автоматическим обнаружением XSS, генерацией PoC и фильтрацией ложных срабатываний для оценки безопасности API.

Репозиторий
37945101 год назадПроверено Kitploit

Популярное

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

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

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

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

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

Веб-интерфейс APIDetector

APIDetector — это мощный и эффективный инструмент, предназначенный для проверки открытых конечных точек Swagger в различных поддоменах с уникальными интеллектуальными возможностями для обнаружения ложных срабатываний. Он особенно полезен для специалистов по безопасности и разработчиков, занимающихся тестированием API и сканированием уязвимостей.

Представлено на BlackHat Arsenal 2024 (Ссылка)

История версий

Новое в версии 3 (текущая)

  • Современный веб-интерфейс: Удобный интерфейс для простого сканирования конечных точек API
  • Результаты в реальном времени: Живые обновления обнаруженных конечных точек и уязвимостей
  • Интерактивная панель управления: Чистый и адаптивный интерфейс с использованием Tailwind CSS и Alpine.js
  • Поддержка загрузки файлов: Сканирование нескольких доменов/поддоменов одновременно путем загрузки текстового файла
  • Проверка доменов: Валидация ввода с помощью сопоставления регулярных выражений
  • Гибкая конфигурация: Простая в использовании форма для настроек сканирования с улучшенными значениями по умолчанию
  • Визуальные результаты: Улучшенное представление результатов сканирования и PoC
  • Управление скриншотами: Автоматический захват и отображение скриншотов уязвимых конечных точек (по одному на поддомен)
  • Целевая генерация PoC: Генерация доказательства уязвимости только для конечных точек /swagger-ui/index.html
  • Адаптивный дизайн: Оптимизирован для всех размеров экрана от мобильных устройств до настольных компьютеров
  • Обработка ошибок: Улучшенная обратная связь и логирование ошибок
  • Улучшения доступности: Улучшенная навигация с клавиатуры и поддержка программ чтения с экрана

Функции версии 2

  • Автоматическое обнаружение XSS: Выявляет уязвимые версии Swagger
  • Визуальная генерация PoC: Создает доказательства концепции для уязвимостей
  • Улучшенная обработка ошибок: Лучшая обратная связь и логирование
  • Улучшенная производительность: Оптимизированные алгоритмы сканирования

Основные функции

  • Гибкий ввод: Принимает одиночные домены или списки поддоменов
  • Несколько протоколов: Тестирование конечных точек через HTTP и HTTPS
  • Параллельность: Многопоточное сканирование для более быстрых результатов
  • Умное обнаружение: Расширенные возможности обнаружения ложных срабатываний
  • Настраиваемые параметры: Конфигурация потоков, user-agent и многое другое

Требования

APIDetector v3 требует Python 3.x и следующие пакеты:

root@kitploit:~
flask         # Веб-фреймворк
requests      # HTTP-клиент
playwright    # Автоматизация браузера для скриншотов
nest_asyncio  # Поддержка асинхронного ввода-вывода

Все зависимости перечислены в requirements.txt и могут быть установлены автоматически во время настройки.

Первоначальная настройка

После установки необходимых пакетов необходимо установить браузеры Playwright:

root@kitploit:~
python -m playwright install

Это требуется для корректной работы функции создания скриншотов.

Начало работы

Предварительные требования

  • Python 3.x (Скачать)
  • pip (установщик пакетов Python)
  • Git (для клонирования репозитория)

Установка

  1. Клонируйте репозиторий:
root@kitploit:~
git clone https://github.com/brinhosa/apidetector.git
cd apidetector
  1. Создайте и активируйте виртуальное окружение:
root@kitploit:~
# На macOS/Linux:
python3 -m venv venv
source venv/bin/activate

# На Windows:
python -m venv venv
venv\Scripts\activate
  1. Установите зависимости:
root@kitploit:~
pip install -r requirements.txt
  1. Установите автоматизацию браузера:
root@kitploit:~
playwright install

Веб-интерфейс (версия 3)

  1. Запустите веб-сервер:
root@kitploit:~
python app.py
  1. По умолчанию сервер запускается на http://127.0.0.1:5000. Вы можете указать другой порт или хост:
root@kitploit:~
python app.py --port 8080 --host 0.0.0.0
  1. Откройте браузер и перейдите по URL, отображаемому в терминале.

  2. Использование веб-интерфейса:

    • Введите один домен или загрузите файл с несколькими доменами (по одному на строку)
    • Настройте параметры сканирования (количество потоков, смешанный режим, user-agent)
    • Нажмите «Start Scan», чтобы начать
    • Просматривайте результаты в реальном времени по мере их появления
    • Скриншоты уязвимых конечных точек будут отображаться автоматически
  3. Скриншоты сохраняются в каталоге screenshots для дальнейшего использования.

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

APIDetector v3 предлагает два способа взаимодействия с инструментом: современный веб-интерфейс (новинка v3) и традиционный интерфейс командной строки (оригинальный).

Веб-интерфейс

  1. Запустите веб-сервер:
root@kitploit:~
python app.py [options]

Доступные опции:

Примеры:

root@kitploit:~
# Запуск с настройками по умолчанию (localhost:5000)
python app.py

# Запуск на пользовательском порту
python app.py -p 8080

# Разрешить внешний доступ
python app.py --host 0.0.0.0

# Запуск в режиме отладки
python app.py -d
  1. Доступ к веб-интерфейсу:

    • Откройте браузер и перейдите по отображаемому URL
    • Введите целевой домен ИЛИ загрузите файл с несколькими доменами (по одному на строку)
    • Настройте параметры сканирования:
      • Режим HTTP/HTTPS
      • Количество потоков (по умолчанию: 10)
      • Пользовательский User-Agent
    • Нажмите «Start Scan»
  2. Просмотр результатов:

    • Обнаруженные конечные точки API отображаются в реальном времени с отслеживанием прогресса
    • Уязвимые конечные точки автоматически тестируются
    • Скриншоты PoC генерируются для подтвержденных уязвимостей
    • Результаты можно просматривать, пока сканирование еще выполняется

Интерфейс командной строки

Запустите APIDetector через командную строку. Вот несколько примеров использования:

  • Обычное использование, сканирование списка поддоменов с 30 потоками, используя user-agent Chrome, и сохранение результатов в файл:

    root@kitploit:~
    python apidetector.py -i list_of_company_subdomains.txt -o results_file.txt -t 30 -ua "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"
    
  • Для сканирования одного домена:

    root@kitploit:~
    python apidetector.py -d example.com
    
  • Для сканирования нескольких доменов из файла:

    root@kitploit:~
    python apidetector.py -i input_file.txt
    
  • Для указания выходного файла:

    root@kitploit:~
    python apidetector.py -i input_file.txt -o output_file.txt
    
  • Для использования определенного количества потоков:

    root@kitploit:~
    python apidetector.py -i input_file.txt -t 20
    
  • Для сканирования с использованием протоколов HTTP и HTTPS:

    root@kitploit:~
    python apidetector.py -m -d example.com
    
  • Для запуска скрипта в тихом режиме (подавление подробного вывода):

    root@kitploit:~
    python apidetector.py -q -d example.com
    

Если вы используете APIDetector v2, замените команды на apidetectorv2.py.

Опции

  • -d, --domain: Одиночный домен для тестирования.
  • -i, --input: Входной файл, содержащий поддомены для тестирования.
  • -o, --output: Выходной файл для записи валидных URL.
  • -t, --threads: Количество потоков для сканирования (по умолчанию 10).
  • -m, --mixed-mode: Тестирование протоколов HTTP и HTTPS.
  • -q, --quiet: Отключить подробный вывод (по умолчанию режим подробный).
  • -ua, --user-agent: Пользовательская строка User-Agent для запросов.

Детали риска каждой конечной точки, которые находит APIDetector

Раскрытие конечных точек документации Swagger или OpenAPI может представлять различные риски, в основном связанные с раскрытием информации. Ниже приведен упорядоченный список на основе уровней потенциального риска, сгруппированных по схожим конечным точкам, которые сканирует APIDetector:

1. Конечные точки высокого риска (прямая документация API):

  • Конечные точки:
    • '/swagger-ui.html', '/swagger-ui/', '/swagger-ui/index.html', '/api/swagger-ui.html', '/documentation/swagger-ui.html', '/swagger/index.html', '/api/docs', '/docs', '/api/swagger-ui', '/documentation/swagger-ui'
  • Риск:
    • Эти конечные точки обычно обслуживают интерфейс Swagger UI, который предоставляет полный обзор всех конечных точек API, включая форматы запросов, параметры запросов, а иногда и примеры запросов и ответов.
    • Уровень риска: Высокий. Раскрытие этой информации дает потенциальным злоумышленникам детальное представление о структуре вашего API и потенциальных векторах атаки.

2. Конечные точки средне-высокого риска (схема/спецификация API):

  • Конечные точки:
    • '/openapi.json', '/swagger.json', '/api/swagger.json', '/swagger.yaml', '/swagger.yml', '/api/swagger.yaml', '/api/swagger.yml', '/api.json', '/api.yaml', '/api.yml', '/documentation/swagger.json', '/documentation/swagger.yaml', '/documentation/swagger.yml'
  • Риск:
    • Эти конечные точки предоставляют необработанные файлы спецификации Swagger/OpenAPI. Они содержат подробную информацию о конечных точках API, включая пути, параметры и иногда методы аутентификации.

3. Конечные точки среднего риска (версии документации API):

  • Конечные точки:
    • '/v2/api-docs', '/v3/api-docs', '/api/v2/swagger.json', '/api/v3/swagger.json', '/api/v1/documentation', '/api/v2/documentation', '/api/v3/documentation', '/api/v1/api-docs', '/api/v2/api-docs', '/api/v3/api-docs', '/swagger/v2/api-docs', '/swagger/v3/api-docs', '/swagger-ui.html/v2/api-docs', '/swagger-ui.html/v3/api-docs', ,

4. Конечные точки низкого риска (конфигурация и ресурсы):

  • Конечные точки:
    • '/swagger-resources', '/swagger-resources/configuration/ui', '/swagger-resources/configuration/security', '/api/swagger-resources', '/api.html'
  • Риск:
    • Эти конечные точки часто предоставляют вспомогательную информацию, детали конфигурации или ресурсы, связанные с настройкой документации API.
    • Уровень риска: Низкий. Они могут напрямую не раскрывать детали конечных точек API, но могут дать представление о конфигурации и настройке документации API.

Итог:

  • Самый высокий риск: Прямое раскрытие интерактивных интерфейсов документации API.
  • Средне-высокий риск: Раскрытие необработанных файлов схем/спецификаций API.
  • Средний риск: Версионная документация API.
  • Низкий риск: Файлы конфигурации и ресурсов для документации API.

Рекомендации:

  • Контроль доступа: Убедитесь, что эти конечные точки не являются общедоступными или по крайней мере защищены механизмами аутентификации.
  • Экспозиция в зависимости от среды: Рассмотрите возможность раскрытия подробной документации API только в средах разработки или тестирования, а не в производственной среде.
  • Мониторинг и логирование: Отслеживайте доступ к этим конечным точкам и настройте оповещения о необычных шаблонах доступа.

Вклад

Вклады в APIDetector приветствуются! Смело форкайте репозиторий, вносите изменения и отправляйте pull-запросы. Особая благодарность участникам, которые помогли с тестированием и предложениями функций:

  • Filipi Pires (Ambassador) - https://www.linkedin.com/in/filipipires/
  • Denis Lourenço - https://www.linkedin.com/in/🚲denis-lourenço-18b07a128/
  • Bruno Francisco Cardoso - https://www.linkedin.com/in/bruno-francisco-cardoso-27445953/

Юридическое предупреждение

Инструмент APIDetector предназначен строго для тестирования и образовательных целей. Разработчики APIDetector не несут ответственности и отказываются от любой ответственности за любое неправильное использование, непредвиденные последствия или ущерб, причиненный использованием этого инструмента. Любое несанкционированное, незаконное или иное вредоносное использование APIDetector строго запрещено. Конечный пользователь несет полную ответственность за соблюдение всех соответствующих местных, государственных, федеральных и международных законов. Используя этот инструмент, пользователь подтверждает, что у него есть необходимые разрешения для тестирования сетей или систем, которые он намеревается сканировать, и соглашается возместить ущерб разработчикам от любых и всех претензий, возникающих в результате его использования. Конечный пользователь несет единоличную ответственность за обеспечение того, чтобы его использование этого инструмента не нарушало никакие правовые ограничения или условия обслуживания, регулирующие сети или системы, проходящие тестирование.

Отказ от ответственности: Использование инструмента APIDetector Инструмент APIDetector разработан исключительно для законного тестирования и образовательных целей. Он предоставляется на условиях «как есть» без каких-либо гарантий, явных или подразумеваемых. Разработчики и дистрибьюторы APIDetector явно отказываются от любой ответственности за неправильное использование, непредвиденные последствия или ущерб, возникшие в результате использования этого инструмента. Важное юридическое уведомление: Несанкционированное, незаконное или неэтичное использование APIDetector строго запрещено. Пользователи несут единоличную ответственность за соблюдение всех применимых местных, государственных, федеральных и международных законов, а также любых условий обслуживания, регулирующих сети или системы, с которыми они взаимодействуют. Используя APIDetector, пользователи подтверждают, что у них есть необходимые полномочия для тестирования целевых сетей или систем. Принятие риска и возмещение убытков: Загружая, устанавливая или используя APIDetector, пользователь принимает на себя полную ответственность за любые юридические последствия, связанные с его использованием. Разработчики и дистрибьюторы APIDetector не несут ответственности за любые юридические последствия, ущерб или претензии третьих лиц, возникающие в результате его использования. Пользователи соглашаются возмещать убытки и защищать разработчиков и дистрибьюторов от любых претензий, судебных издержек или обязательств, связанных с их действиями.

Лицензия

Этот проект лицензирован в соответствии с лицензией MIT.

Благодарности

  • Спасибо всем участникам, которые помогли с тестированием, предложениями и улучшениями.
  • Автор: Rafael B. Brinhosa - https://www.linkedin.com/in/brinhosa/
Скачать инструмент
ОпцияОписаниеПо умолчанию
-p, --portНомер порта5000
--hostАдрес хоста127.0.0.1
-d, --debugВключить режим отладкиFalse

Для запуска скрипта с пользовательским user-agent:

root@kitploit:~
python apidetector.py -d example.com -ua "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"
  • Уровень риска: Средне-высокий. Хотя они требуют большего анализа, чем интерфейсы UI, они все равно раскрывают обширную информацию об API.
  • '/api/swagger/v2/api-docs'
    '/api/swagger/v3/api-docs'
  • Риск:
    • Эти конечные точки часто относятся к версионной документации или описаниям API. Они раскрывают информацию о структуре и возможностях API, что может помочь злоумышленнику понять функциональность API и потенциальные слабые места.
    • Уровень риска: Средний. Они могут быть не такими подробными, как полные файлы документации или схем, но все же предоставляют полезную информацию для злоумышленников.