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

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

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 с несколькими наборами учетных данных для обнаружения повышения привилегий и ошибок нарушенного контроля доступа с помощью анализа дифференциальных ответов.

Репозиторий
1733755 лет назадПроверено 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. Рекомендуется подготовить токены доступа как минимум для двух учетных записей пользователей с разными правами, а также можно создать более одного токена доступа на одну учетную запись для проверки корректного поведения токенов с разными областями.

    root@kitploit:~
    {
       "<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} запроса не будет.

    root@kitploit:~
    {
       "/orgs/{org}/repos":{
          "type":"all"
       },
       "/repos/{owner}/{repo}":{
          
       }
    }
    

    OPENAPI_PATHS

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

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

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

    root@kitploit:~
    /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.

    root@kitploit:~
    <YOU_GITLAB_API_ACCESS_TOKEN>
    

    OPENAPI_BASE_URL

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

    root@kitploit:~
    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

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