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

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

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

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

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

Категории

Все категории
Loading categories
graphw00f — Инструмент для определения версии движка GraphQL-сервера, который отправляет безвредные и некорректные запросы для идентификации серверной технологии и оценки средств безопасности с помощью GraphQL Threat Matrix. | Kitploit
Инструменты/GitHubGitHub/dolevf/graphw00f
РазведкаТестирование безопасности APIСбор информацииВеб-безопасность
GitHubdolevf/graphw00f

graphw00f

Инструмент для определения версии движка GraphQL-сервера, который отправляет безвредные и некорректные запросы для идентификации серверной технологии и оценки средств безопасности с помощью GraphQL Threat Matrix.

Репозиторий
884983 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

graphw00f

Благодарность Nick Aleks за логотип!

graphw00f - Определение GraphQL-сервера

Содержание

  • Как это работает?
  • Определяемые технологии
  • Матрица угроз GraphQL
  • Необходимые условия
  • Установка
  • Настройка
  • Пример использования
    • Определение GraphQL
    • Обнаружение и определение GraphQL
  • Поддержка и проблемы
  • Ресурсы

Как это работает?

graphw00f (вдохновлён wafw00f) — это инструмент для определения GraphQL по конечным точкам GQL. Он отправляет смесь безобидных и искажённых запросов, чтобы определить, какой GraphQL-движок работает за кулисами. graphw00f использует проект Матрица угроз GraphQL, чтобы предоставить информацию о том, какие средства безопасности каждая технология предоставляет «из коробки» и включены ли они по умолчанию.

Специально подготовленные запросы заставляют разные реализации GraphQL-серверов по-разному реагировать на запросы, мутации и подписки, что позволяет легко определить бэкенд-движок и различить различные реализации GraphQL. (CWE: CWE-200)

graphw00f поддерживает обнаружение и определение GraphQL-серверов, использующих запросы как на основе GET, так и POST.

Определяемые технологии

В настоящее время graphw00f пытается обнаружить следующие GraphQL-движки:

  • Graphene - Python
  • Ariadne - Python
  • Apollo - TypeScript
  • graphql-go - Go
  • gqlgen - Go
  • WPGraphQL - PHP
  • GraphQL API for Wordpress - PHP
  • Gato GraphQL - PHP
  • graphql-ruby - Ruby
  • graphql-php - PHP
  • Hasura - Haskell
  • HyperGraphQL - Java
  • graphql-java - Java
  • Juniper - Rust
  • Sangria - Scala
  • Flutter - Dart
  • Diana.jl - Julia
  • Strawberry - Python
  • Tartiflette - Python
  • Dgraph - JavaScript
  • Directus - TypeScript
  • AWS AppSync
  • GraphQL Yoga - TypeScript
  • Lighthouse - PHP
  • Agoo - Ruby
  • Mercurius - JavaScript
  • morpheus-graphql - Haskell
  • Lacinia - Clojure
  • Caliban - Scala
  • jaal - Golang
  • absinthe-graphql - Elixir
  • GraphQL.NET - Microsoft .NET
  • pg_graphql - Rust
  • tailcall - Rust
  • Hot Chocolate - Microsoft .NET
  • Inigo - Go
  • ballerina-graphql - Ballerina

Матрица угроз GraphQL

Проект graphw00f использует Проект матрицы угроз GraphQL в качестве базы данных матрицы безопасности технологий. Когда graphw00f успешно определяет конечную точку GraphQL, он выводит документ матрицы угроз. Этот документ помогает инженерам по безопасности определить, насколько зрелая технология, какие функции безопасности она предлагает и содержит ли она какие-либо CVE.

Матрица угроз GraphQL

Необходимые условия

  • python3
  • requests

Установка

Клонирование репозитория

git clone https://github.com/dolevf/graphw00f.git

Запуск graphw00f

root@kitploit:~
Usage: main.py -d -f -t http://example.com

Options:
  -h, --help            show this help message and exit
  -r, --noredirect      Do not follow redirections given by 3xx responses
  -t URL, --target=URL  target url with the path
  -f, --fingerprint     fingerprint mode
  -d, --detect          detect mode
  -p PROXY, --proxy=PROXY
                        HTTP(S) proxy URL in the form
                        http://user:pass@host:port
  -T TIMEOUT, --timeout=TIMEOUT
                        Request timeout in seconds
  -o OUTPUT_FILE, --output-file=OUTPUT_FILE
                        Output results to a file (CSV)
  -l, --list            List all GraphQL technologies graphw00f is able to
                        detect
  -u USERAGENT, --user-agent=USERAGENT
                        Custom user-agent to use (overrides the one from
                        headers configuration)
  -H HEADER, --header=HEADER
                        Custom headers to send (e.g. "Authorization: Bearer
                        ey...").
  -w WORDLIST, --wordlist=WORDLIST
                        Path to a list of custom GraphQL endpoints
  -v, --version         Print out the current version and exit.

Настройка

Для graphw00f не требуется много настроек. Но если вам нужны такие вещи, как заголовки авторизации или куки для конкретной конечной точки, используйте файл conf.py.

root@kitploit:~
# Custom Headers
HEADERS = {'User-Agent':'graphw00f'}

# Custom Cookies
COOKIES = {"PHPSESS":"DEADBEEF"}

Использование --user-agent добавляет ключ User-Agent независимо от того, есть ли он в файле conf.py; если в файле уже есть заголовок, параметр командной строки переопределяет его.

Пример

Определение GraphQL

Это пример определения (-f) конечной точки, где расположение GraphQL известно заранее (/graphql)

root@kitploit:~
python3 main.py -f -t https://demo.hypergraphql.org:8484/graphql

                +-------------------+
                |     graphw00f     |
                +-------------------+
                  ***            ***
                **                  ***
              **                       **
    +--------------+              +--------------+
    |    Node X    |              |    Node Y    |
    +--------------+              +--------------+
                  ***            ***
                     **        **
                       **    **
                    +------------+
                    |   Node Z   |
                    +------------+

                graphw00f - v1.0.7
          The fingerprinting tool for GraphQL
           Dolev Farhi <[email protected]>

[*] Checking if GraphQL is available at https://demo.hypergraphql.org:8484/graphql...
[*] Found GraphQL...
[*] Attempting to fingerprint...
[*] Discovered GraphQL Engine: (HyperGraphQL)
[!] Attack Surface Matrix: https://github.com/dolevf/graphw00f/blob/main/docs/hypergraphql.md
[!] Technologies: Java
[!] Homepage: https://www.hypergraphql.org
[*] Completed.

Обнаружение и определение GraphQL

Это пример того, как graphw00f может обнаружить (-d), где находится GraphQL, а затем выполнить процесс определения (-f).

root@kitploit:~
python3 main.py -f -d -t http://localhost:5000

                +-------------------+
                |     graphw00f     |
                +-------------------+
                  ***            ***
                **                  ***
              **                       **
    +--------------+              +--------------+
    |    Node X    |              |    Node Y    |
    +--------------+              +--------------+
                  ***            ***
                     **        **
                       **    **
                    +------------+
                    |   Node Z   |
                    +------------+

                graphw00f - v1.1.2
          The fingerprinting tool for GraphQL
           Dolev Farhi <[email protected]>

[*] Checking http://dvga.example.local:5000/graphql
[!] Found GraphQL at http://dvga.example.local:5000/graphql
[*] Attempting to fingerprint...
[*] Discovered GraphQL Engine: (Graphene)
[!] Attack Surface Matrix: https://github.com/nicholasaleks/graphql-threat-matrix/blob/master/implementations/graphene.md
[!] Technologies: Python
[!] Homepage: https://graphene-python.org
[*] Completed.

Поддержка и проблемы

Если возникают какие-либо проблемы с graphw00f, такие как ложные срабатывания, неточные определения, ошибки и т.д., пожалуйста, создайте issue на GitHub с подробным описанием окружения.

Ресурсы

Хотите узнать больше о GraphQL? Переходите к моему другому проекту и взламывайте GraphQL: Damn Vulnerable GraphQL Application

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