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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/dolevf/graphql-cop
Сканеры уязвимостейСканеры веб-уязвимостейДинамический анализ кода (DAST)Эксплуатация веб-приложенийТестирование безопасности APIВеб-безопасностьТестирование на ПроникновениеБезопасность APIТоп в Безопасность API №5Топ в Тестирование безопасности API №5
684101910 месяцев назадПроверено Kitploit
Топ в Динамический анализ кода (DAST) №15
Топ в Эксплуатация веб-приложений №16
Топ в Веб-безопасность №15
Топ в Сканеры веб-уязвимостей №15
GitHubdolevf/graphql-cop

graphql-cop

Легковесная утилита на Python для автоматизированного аудита безопасности GraphQL API. Обнаруживает неправильные конфигурации, утечки информации и уязвимости типа «отказ в обслуживании» с командами воспроизведения cURL.

Репозиторий

Популярное

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

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

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

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

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

GraphQL Cop — Утилита для аудита безопасности GraphQL

GraphQL Cop

О программе

GraphQL Cop — это небольшая утилита на Python для выполнения стандартных проверок безопасности GraphQL API. GraphQL Cop отлично подходит для запуска проверок CI/CD в GraphQL. Она легковесна и охватывает интересные проблемы безопасности GraphQL.

GraphQL Cop позволяет воспроизводить найденные уязвимости, предоставляя команды cURL для каждой из них.

Требования

  • Python3
  • Requests Library

Обнаруживаемые уязвимости

  • Перегрузка псевдонимов (DoS)
  • Пакетные запросы (DoS)
  • Запросы на основе GET (CSRF)
  • Запросы на основе POST с нагрузками в формате urlencoded (CSRF)
  • Режимы трассировки/отладки GraphQL (Info Leak)
  • Дублирование полей (DoS)
  • Подсказки полей (Info Leak)
  • GraphiQL (Info Leak)
  • Интроспекция (Info Leak)
  • Перегрузка директив (DoS)
  • Циклический запрос с использованием интроспекции (DoS)
  • Поддержка мутаций через GET-методы (CSRF)

Установка

Для установки зависимостей выполните следующие команды.

root@kitploit:~
python3 -m venv path/to/venv
source path/to/venv/bin/activate
python3 -m pip install -r requirements.txt

Первая команда создаёт виртуальное окружение в каталоге, указанном в path/to/venv. Вторая команда активирует виртуальное окружение. Последняя команда устанавливает все пакеты Python, перечисленные в requirements.txt.

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

root@kitploit:~
$ python3 graphql-cop.py -h
Usage: graphql-cop.py -t http://example.com -o json

Options:
  -h, --help            show this help message and exit
  -t URL, --target=URL  target url with the path - if a GraphQL path is not
                        provided, GraphQL Cop will iterate through a series of
                        common GraphQL paths
  -H HEADER, --header=HEADER
                        Append Header(s) to the request '{"Authorization":
                        "Bearer eyjt"}' - Use multiple -H for additional
                        Headers
  -o FORMAT, --output=FORMAT
                        json
  -e EXCLUDED_TESTS, --excluded-tests=EXCLUDED_TESTS
                        Exclude specific tests
  -l, --list-tests      List available tests
  -f, --force           Forces a scan when GraphQL cannot be detected
  -d, --debug           Append a header with the test name for debugging
  -x PROXY, --proxy=PROXY
                        HTTP(S) proxy URL in the form
                        http://user:pass@host:port
  -w WORDLIST, --wordlist=WORDLIST
                        Path to a list of custom GraphQL endpoints
  -v, --version         Print out the current version and exit.
  -T, --tor             Sends the request through the Tor network (ensure Tor
                        is running and properly configured)

Проверка веб-сайта

root@kitploit:~
$ python3 graphql-cop.py -t https://mywebsite.com/graphql

[HIGH] Introspection Query Enabled (Information Leakage)
[LOW] GraphQL Playground UI (Information Leakage)
[HIGH] Alias Overloading with 100+ aliases is allowed (Denial of Service)
[HIGH] Queries are allowed with 1000+ of the same repeated field (Denial of Service)

Исключение определённого теста

root@kitploit:~
$ python3 graphql-cop.py -t https://mywebsite.com/graphql -e field_duplication

[HIGH] Introspection Query Enabled (Information Leakage)
[LOW] GraphQL Playground UI (Information Leakage)
[HIGH] Alias Overloading with 100+ aliases is allowed (Denial of Service)
[HIGH] Queries are allowed with 1000+ of the same repeated field (Denial of Service)

Проверка веб-сайта с выводом в JSON и командой cURL для воспроизведения

root@kitploit:~
python3 graphql-cop.py -t https://mywebsite.com/graphql -o json

 {'curl_verify': 'curl -X POST -H "User-Agent: graphql-cop/1.2" -H '
                 '"Accept-Encoding: gzip, deflate" -H "Accept: */*" -H '
                 '"Connection: keep-alive" -H "Content-Length: 33" -H '
                 '"Content-Type: application/json" -d \'{"query": "query { '
                 '__typename }"}\' \'http://localhost:5013/graphql\'',
  'description': 'Tracing is Enabled',
  'impact': 'Information Leakage',
  'result': False,
  'severity': 'INFO',
  'color': 'green',
  'title': 'Trace Mode'},
 {'curl_verify': 'curl -X POST -H "User-Agent: graphql-cop/1.2" -H '
                 '"Accept-Encoding: gzip, deflate" -H "Accept: */*" -H '
                 '"Connection: keep-alive" -H "Content-Length: 64" -H '
                 '"Content-Type: application/json" -d \'{"query": "query { '
                 '__typename @aa@aa@aa@aa@aa@aa@aa@aa@aa@aa }"}\' '
                 "'http://localhost:5013/graphql'",
  'description': 'Multiple duplicated directives allowed in a query',
  'impact': 'Denial of Service',
  'result': True,
  'severity': 'HIGH',
  'color': 'red',
  'title': 'Directive Overloading'}]

Проверка веб-сайта через прокси (например, Burp Suite на 127.0.0.1:8080) с пользовательскими заголовками (например, Authorization):

root@kitploit:~
$ python3 graphql-cop.py -t https://mywebsite.com/graphql --proxy=http://127.0.0.1:8080 --header '{"Authorization": "Bearer token_here"}'

[HIGH] Introspection Query Enabled (Information Leakage)
[LOW] GraphQL Playground UI (Information Leakage)
[HIGH] Alias Overloading with 100+ aliases is allowed (Denial of Service)
[HIGH] Queries are allowed with 1000+ of the same repeated field (Denial of Service)

Настройка и использование Docker

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

  • Должен быть установлен Docker.

Сборка Docker-образа

  1. Клонируйте репозиторий:
root@kitploit:~
git clone https://github.com/dolevf/graphql-cop.git
cd graphql-cop
  1. Соберите Docker-образ:
root@kitploit:~
docker build -t graphql-cop:latest .

Запуск Docker-контейнера

Вы можете запустить Docker-контейнер и передать аргументы скрипту graphql-cop следующим образом:

root@kitploit:~
docker run --rm -it graphql-cop:latest -t <GRAPHQL_ENDPOINT> -H '{"<HEADER_KEY>": "<HEADER_VALUE>"}'

Пример

Вот пример запуска контейнера:

root@kitploit:~
docker run --rm -it graphql-cop:latest -t https://example.com/graphql -H '{"Authorization": "Bearer abc123xyz"}'

Примечание

Для получения списка всех доступных опций выполните:

root@kitploit:~
docker run --rm -it graphql-cop:latest --help

Устранение неполадок

  1. Ошибка «Файл не найден»: Если контейнер не может найти скрипт для выполнения, убедитесь, что структура репозитория цела и Dockerfile настроен правильно.
  2. Проблема с зависимостями: Если отсутствуют зависимости, проверьте, что файл requirements.txt полон.
Скачать инструмент