Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
graphw00f — Outil de fingerprinting de moteur de serveur GraphQL qui envoie des requêtes bénignes et malformées pour identifier la technologie back-end et évaluer les défenses de sécurité via la GraphQL Threat Matrix. | Kitploit
Outils/GitHubGitHub/dolevf/graphw00f
ReconnaissanceTests de Sécurité des APICollecte d'InformationsSécurité Web
GitHubdolevf/graphw00f

graphw00f

Outil de fingerprinting de moteur de serveur GraphQL qui envoie des requêtes bénignes et malformées pour identifier la technologie back-end et évaluer les défenses de sécurité via la GraphQL Threat Matrix.

Voir le dépôt
88498il y a 3 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

graphw00f

Crédits à Nick Aleks pour le logo !

graphw00f - Empreinte numérique de serveur GraphQL

Table des matières

  • Comment ça marche ?
  • Détections
  • Matrice des menaces GraphQL
  • Prérequis
  • Installation
  • Configuration
  • Exemple d'utilisation
    • Empreinte GraphQL
    • Détection et empreinte GraphQL
  • Support et problèmes
  • Ressources

Comment ça marche ?

graphw00f (inspiré par wafw00f) est l'outil d'empreinte numérique pour les endpoints GQL. Il envoie un mélange de requêtes bénignes et malformées pour déterminer le moteur GraphQL qui s'exécute en arrière-plan. graphw00f utilise le projet GraphQL Threat Matrix pour fournir un aperçu des défenses de sécurité que chaque technologie offre par défaut, et si elles sont activées ou désactivées par défaut.

Des requêtes spécialement conçues provoquent des réponses uniques de différentes implémentations de serveur GraphQL aux requêtes, mutations et abonnements, ce qui rend triviale l'empreinte du moteur backend et la distinction entre les diverses implémentations GraphQL. (CWE : CWE-200)

graphw00f prend en charge la détection et l'empreinte des serveurs GraphQL qui utilisent des requêtes basées sur GET ou POST.

Détections

graphw00f tente actuellement de découvrir les moteurs GraphQL suivants :

  • 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

Matrice des menaces GraphQL

Le projet graphw00f utilise le GraphQL Threat Matrix Project comme base de données de matrice de sécurité technologique. Lorsque graphw00f identifie avec succès un endpoint GraphQL, il affiche le document de matrice de menaces. Ce document aide les ingénieurs en sécurité à évaluer la maturité de la technologie, les fonctionnalités de sécurité qu'elle offre et si elle contient des CVE.

GraphQL Threat Matrix

Prérequis

  • python3
  • requests

Installation

Cloner le dépôt

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

Exécuter graphw00f

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

Options:
  -h, --help            affiche ce message d'aide et quitte
  -r, --noredirect      Ne pas suivre les redirections données par les réponses 3xx
  -t URL, --target=URL  URL cible avec le chemin
  -f, --fingerprint     mode empreinte
  -d, --detect          mode détection
  -p PROXY, --proxy=PROXY
                        URL du proxy HTTP(S) sous la forme
                        http://user:pass@host:port
  -T TIMEOUT, --timeout=TIMEOUT
                        Délai d'attente de la requête en secondes
  -o OUTPUT_FILE, --output-file=OUTPUT_FILE
                        Écrire les résultats dans un fichier (CSV)
  -l, --list            Lister toutes les technologies GraphQL que graphw00f peut
                        détecter
  -u USERAGENT, --user-agent=USERAGENT
                        User-agent personnalisé à utiliser (remplace celui de la
                        configuration des en-têtes)
  -H HEADER, --header=HEADER
                        En-têtes personnalisés à envoyer (par ex. "Authorization: Bearer
                        ey...").
  -w WORDLIST, --wordlist=WORDLIST
                        Chemin vers une liste d'endpoints GraphQL personnalisés
  -v, --version         Affiche la version actuelle et quitte.

Configuration

Il n'y a pas beaucoup de configurations requises pour graphw00f. Mais, si vous avez besoin d'en-têtes d'autorisation ou de cookies définis pour un endpoint particulier, utilisez le fichier conf.py.

root@kitploit:~
# En-têtes personnalisés
HEADERS = {'User-Agent':'graphw00f'}

# Cookies personnalisés
COOKIES = {"PHPSESS":"DEADBEEF"}

L'utilisation de --user-agent ajoute la clé User-Agent indépendamment de sa présence dans le fichier conf.py ; si le fichier en contient déjà une, le paramètre de ligne de commande la remplace.

Exemple

Empreinte GraphQL

Voici un exemple d'empreinte (-f) d'un endpoint dont l'emplacement de GraphQL est connu à l'avance (/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
          L'outil d'empreinte pour GraphQL
           Dolev Farhi <[email protected]>

[*] Vérification de la disponibilité de GraphQL à https://demo.hypergraphql.org:8484/graphql...
[*] GraphQL trouvé...
[*] Tentative d'empreinte...
[*] Moteur GraphQL découvert : (HyperGraphQL)
[!] Matrice de surface d'attaque : https://github.com/dolevf/graphw00f/blob/main/docs/hypergraphql.md
[!] Technologies : Java
[!] Page d'accueil : https://www.hypergraphql.org
[*] Terminé.

Détection et empreinte GraphQL

Voici un exemple de la façon dont graphw00f peut détecter (-d) où se trouve GraphQL puis exécuter le processus d'empreinte (-f).

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

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

                graphw00f - v1.1.2
          L'outil d'empreinte pour GraphQL
           Dolev Farhi <[email protected]>

[*] Vérification de http://dvga.example.local:5000/graphql
[!] GraphQL trouvé à http://dvga.example.local:5000/graphql
[*] Tentative d'empreinte...
[*] Moteur GraphQL découvert : (Graphene)
[!] Matrice de surface d'attaque : https://github.com/nicholasaleks/graphql-threat-matrix/blob/master/implementations/graphene.md
[!] Technologies : Python
[!] Page d'accueil : https://graphene-python.org
[*] Terminé.

Support et problèmes

Pour tout problème avec graphw00f tel que des faux positifs, des détections inexactes, des bugs, etc., veuillez créer un ticket GitHub avec les détails de l'environnement.

Ressources

Vous voulez en savoir plus sur GraphQL ? Rendez-vous sur mon autre projet et pirater GraphQL : Damn Vulnerable GraphQL Application

Télécharger l’outil