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

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

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

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

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

Категории

Все категории
Loading categories
openapi_security_scanner — Автоматизированный сканер безопасности авторизации для API на основе OpenAPI. Тестирует конечные точки GET с несколькими наборами учетных данных для обнаружения повышения привилегий и ошибок нарушенного контроля доступа с помощью анализа дифференциальных ответов. | Kitploit
Инструменты/GitHubGitHub/ngalongc/openapi_security_scanner
Сканеры уязвимостейТестирование безопасности APIВеб-безопасностьТестирование на Проникновение
GitHubngalongc/openapi_security_scanner

openapi_security_scanner

Автоматизированный сканер безопасности авторизации для API на основе OpenAPI. Тестирует конечные точки GET с несколькими наборами учетных данных для обнаружения повышения привилегий и ошибок нарушенного контроля доступа с помощью анализа дифференциальных ответов.

Репозиторий
17337235 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

OpenAPI Security Scanner

О проекте

Проблемы безопасности авторизации в современных веб-приложениях нелегко обнаружить с помощью сканеров безопасности. Несколько примеров из Shopify, LINE, NordVPN. Одна из причин в том, что сканеры безопасности в основном ищут SQLi, XSS, RCE, а не ошибки авторизации, и обычно не знают, как должно вести себя веб-приложение. Поэтому большинство ошибок авторизации сейчас обнаруживаются вручную. OpenAPI Security Scanner создан, чтобы помочь выявлять проблемы безопасности авторизации как с помощью автоматизации, так и при ручном анализе. Он работает как внешний инструмент модульного тестирования, чтобы убедиться, что всё ведёт себя так, как должно.

Создано с помощью

  • Schemathesis

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

Посмотрите это видео, чтобы следовать инструкции, или продолжайте чтение.

Форкните или клонируйте этот проект и следуйте инструкциям ниже, чтобы начать.

Рабочий процесс использования этого сканера выглядит примерно так:

  • Подготовьте OpenAPI yaml-файл целевого API
  • Определите целевые конечные точки и переменные для тестирования API
  • Сгенерируйте несколько наборов учетных данных от разных пользователей, чтобы охватить различные граничные случаи при выполнении тестов API
  • После настройки запустите runner, и результаты сканирования можно будет найти в артефактах
  • Запланируйте периодический запуск runner и настройте способ получения уведомлений при изменении результатов сканирования

Преимущества

Для разработчиков использование этого инструмента добавляет дополнительный уровень уверенности в том, что API ведет себя так, как ожидается, как изнутри, так и снаружи. Сканер можно запускать при каждом развертывании кода, запуская пайплайн https://docs.gitlab.com/ee/ci/triggers/.

Для охотников за багами использование этого инструмента позволяет всегда быть в курсе изменений в целевом API, поскольку мы знаем, что даже если конкретная конечная точка не была уязвима раньше, она может стать уязвимой в будущем по разным причинам. Поэтому проще автоматизировать ручную часть охоты за багами с помощью этого инструмента.

Предупреждение перед использованием

Убедитесь, что у вас есть разрешение на сканирование целевого API.

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

Вам понадобится OpenAPI yaml-файл веб-приложения, и замените им содержимое api.yaml в репозитории.

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

Замените содержимое api.yaml на OpenAPI yaml-файл целевого приложения, затем перейдите в GitLab проекте Settings -> CI/CD -> Разверните Variables и введите переменные в указанных ниже форматах.

OPENAPI_CREDS

Предоставленные здесь учетные данные будут передаваться в вызовы API в формате заголовка Authorization: Bearer. Рекомендуется подготовить токены доступа как минимум для двух учетных записей пользователей с разными правами, а также можно создать более одного токена доступа на одну учетную запись для проверки корректного поведения токенов с разными областями.

{
   "<user_a>":[
      {
         "scope":"<scope>",
         "access_token":"<value>",
         "name":"<name_of_access_token>"
      },
      {
         "scope":"<scope>",
         "access_token":"<value>",
         "name":"<name_of_access_token>"
      }
   ],
   "<user_b>":[
      {
         "scope":"<scope>",
         "access_token":"<value>",
         "name":"<name_of_access_token>"
      }
   ]
}

OPENAPI_ENDPOINTS

Указанные здесь конечные точки должны быть вызовами API на основе GET, также можно включить запрос в тело JSON. В примере ниже конечная точка /org/{org}/repos и запрос к ней type=all. Для конечной точки /repos/{owner}/{repo} запроса не будет.

{
   "/orgs/{org}/repos":{
      "type":"all"
   },
   "/repos/{owner}/{repo}":{
      
   }
}

OPENAPI_PATHS

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

{
   "org":[
      "test-org"
   ],
   "owner":[
      "ngalongc",
      "reconless"
   ],
   "repo":[
      "public-repo",
      "private-repo"
   ]
}

В этом случае генерируются следующие комбинации вызовов API, и все они будут вызваны разными наборами учетных данных, указанных в OPENAPI_CREDS.

/orgs/test-org/repos?type=all
/repos/ngalongc/public-repo
/repos/ngalongc/private-repo
/repos/reconless/public-repo
/repos/reconless/private-repo

PRIVATE_TOKEN

Перейдите по ссылке https://gitlab.com/-/profile/personal_access_tokens и создайте токен доступа api, затем замените значение здесь. Этот токен доступа GitLab используется для загрузки результатов сканирования из GitLab runner.

<YOU_GITLAB_API_ACCESS_TOKEN>

OPENAPI_BASE_URL

Это должно быть значение базового URL вашего API сервера

https://example.com/api/v3

Демонстрация простых тестов разрешений на GitHub API

Скриншот уведомления Slack при обнаружении изменений API

Скриншот результатов сканирования в артефактах

Пример отчета: https://ngalog-gitlab.gitlab.io/-/openapi_security_scanner/-/jobs/966841401/artifacts/sample.html

Ограничения

  • Он может тестировать только конечные точки на основе GET
  • Для некоторых конечных точек API, таких как /users/{user_id}/activities, ответы изменяются при каждом вызове, поэтому обнаружение изменений в таких API не имеет смысла

Вклад

Вклад — это то, что делает сообщество открытого кода таким удивительным местом для обучения, вдохновения и творчества. Любой ваш вклад очень ценится.

  1. Форкните проект
  2. Создайте ветку для вашей функции (git checkout -b feature/AmazingFeature)
  3. Зафиксируйте изменения (git commit -m 'Add some AmazingFeature')
  4. Отправьте изменения в ветку (git push origin feature/AmazingFeature)
  5. Откройте Merge Request

Лицензия

Распространяется по лицензии MIT. См. файл LICENSE для получения дополнительной информации.

Контакты

Ron Chan - @ngalongc

Ссылка на проект: https://gitlab.com/ngalog-gitlab/openapi_security_scanner

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