Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
graphw00f — Ferramenta de identificação de engine de servidor GraphQL que envia consultas benignas e malformadas para identificar a tecnologia do backend e avaliar as defesas de segurança através da GraphQL Threat Matrix. | Kitploit
Ferramentas/GitHubGitHub/dolevf/graphw00f
ReconhecimentoTestes de Segurança de APIsColeta de InformaçõesSegurança Web
GitHubdolevf/graphw00f

graphw00f

Ferramenta de identificação de engine de servidor GraphQL que envia consultas benignas e malformadas para identificar a tecnologia do backend e avaliar as defesas de segurança através da GraphQL Threat Matrix.

Ver Repositório
88498há 3 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

graphw00f

Créditos para Nick Aleks pelo logotipo!

graphw00f - Identificação de Servidores GraphQL

Índice

  • Como funciona?
  • Detecções
  • Matriz de Ameaças GraphQL
  • Pré-requisitos
  • Instalação
  • Configuração
  • Exemplo de Uso
    • Identificação de GraphQL
    • Detecção e Identificação de GraphQL
  • Suporte e Problemas
  • Recursos

Como funciona?

graphw00f (inspirado por wafw00f) é a ferramenta de identificação de GraphQL para endpoints GQL. Ela envia uma mistura de consultas benignas e malformadas para determinar qual engine GraphQL está sendo executado nos bastidores. graphw00f utilizará o projeto GraphQL Threat Matrix para fornecer informações sobre quais defesas de segurança cada tecnologia oferece prontas para uso, e se estão ativadas ou desativadas por padrão.

Consultas especialmente elaboradas fazem com que diferentes implementações de servidor GraphQL respondam de forma única a consultas, mutações e inscrições, o que torna trivial identificar o engine backend e distinguir entre as várias implementações GraphQL. (CWE: CWE-200)

graphw00f suporta a detecção e identificação de servidores GraphQL que utilizam consultas baseadas em GET ou POST.

Detecções

Atualmente, graphw00f tenta descobrir os seguintes engines 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

Matriz de Ameaças GraphQL

O projeto graphw00f utiliza o GraphQL Threat Matrix Project como seu banco de dados de matriz de segurança tecnológica. Quando graphw00f identifica com sucesso um endpoint GraphQL, ele imprime o documento da matriz de ameaças. Este documento ajuda engenheiros de segurança a identificar o quão madura é a tecnologia, quais recursos de segurança ela oferece e se contém algum CVE.

Matriz de Ameaças GraphQL

Pré-requisitos

  • python3
  • requests

Instalação

Clonar Repositório

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

Executar 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.

Configuração

Não há muitas configurações necessárias para graphw00f. Mas, se você precisar de cabeçalhos de Autorização ou Cookies para um endpoint específico, use o arquivo conf.py.

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

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

Usar --user-agent adiciona a chave User-Agent independentemente de o arquivo conf.py a ter; se o arquivo já tiver uma, o parâmetro de linha de comando a substitui.

Exemplo

Identificação de GraphQL

Este é um exemplo de como identificar (-f) um endpoint onde a localização do GraphQL é conhecida antecipadamente (/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.

Detecção e Identificação de GraphQL

Este é um exemplo de como graphw00f pode detectar (-d) onde o GraphQL está e então executar o processo de identificação (-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.

Suporte e Problemas

Qualquer problema com graphw00f, como falsos positivos, detecções imprecisas, bugs, etc., por favor crie uma issue no GitHub com detalhes do ambiente.

Recursos

Quer aprender mais sobre GraphQL? Acesse meu outro projeto e hackeie GraphQL: Damn Vulnerable GraphQL Application

Baixar ferramenta