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
graphql-cop — Utilitaire Python léger pour l'audit de sécurité automatisé des API GraphQL. Détecte les erreurs de configuration, les fuites d'informations et les vulnérabilités de déni de service avec des commandes de reproduction cURL. | Kitploit
Outils/GitHubGitHub/dolevf/graphql-cop
Scanners de VulnérabilitésScanners de Vulnérabilités WebAnalyse Dynamique de Code (DAST)Exploitation d'Applications WebTests de Sécurité des APISécurité WebTests d'IntrusionSécurité des APITop en Sécurité des API n°5Top en Tests de Sécurité des API n°5
6841019il y a 10 moisVérifié par Kitploit
Top en Analyse Dynamique de Code (DAST) n°15
Top en Exploitation d'Applications Web n°16
Top en Sécurité Web n°15
Top en Scanners de Vulnérabilités Web n°15
GitHubdolevf/graphql-cop

graphql-cop

Utilitaire Python léger pour l'audit de sécurité automatisé des API GraphQL. Détecte les erreurs de configuration, les fuites d'informations et les vulnérabilités de déni de service avec des commandes de reproduction cURL.

Voir le dépôt

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

GraphQL Cop - Utilitaire d'audit de sécurité pour GraphQL

GraphQL Cop

À propos

GraphQL Cop est un petit utilitaire Python pour exécuter des tests de sécurité courants contre les API GraphQL. GraphQL Cop est parfait pour effectuer des vérifications CI/CD dans GraphQL. Il est léger et couvre des problèmes de sécurité intéressants dans GraphQL.

GraphQL Cop vous permet de reproduire les résultats en fournissant des commandes cURL pour chaque vulnérabilité identifiée.

Prérequis

  • Python3
  • Requests Library

Détections

  • Surcharge d'alias (DoS)
  • Requêtes par lots (DoS)
  • Requêtes basées sur GET (CSRF)
  • Requêtes basées sur POST utilisant des payloads urlencodés (CSRF)
  • Modes de traçage/débogage GraphQL (Fuites d'informations)
  • Duplication de champs (DoS)
  • Suggestions de champs (Fuites d'informations)
  • GraphiQL (Fuites d'informations)
  • Introspection (Fuites d'informations)
  • Surcharge de directives (DoS)
  • Requête circulaire utilisant l'introspection (DoS)
  • Support des mutations via les méthodes GET (CSRF)

Installation

Les commandes ci-dessous doivent être exécutées pour installer les dépendances.

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

La première commande crée un environnement virtuel dans le répertoire spécifié par path/to/venv. La deuxième commande active l'environnement virtuel. La dernière commande installe tous les paquets Python listés dans requirements.txt.

Utilisation

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)

Tester un site Web

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)

Exclure un test spécifique

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)

Tester un site Web, exporter en JSON analysable, commande de reproduction 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'}]

Tester un site Web via un proxy (ex. Burp Suite à l'écoute sur 127.0.0.1:8080) avec des en-têtes personnalisés (ex. 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)

Configuration et utilisation de Docker

Prérequis

  • Docker installé sur votre machine.

Construction de l'image Docker

  1. Clonez le dépôt :
root@kitploit:~
git clone https://github.com/dolevf/graphql-cop.git
cd graphql-cop
  1. Construisez l'image Docker :
root@kitploit:~
docker build -t graphql-cop:latest .

Exécution du conteneur Docker

Vous pouvez exécuter le conteneur Docker et passer des arguments au script graphql-cop comme suit :

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

Exemple

Voici un exemple d'exécution du conteneur :

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

Remarque

Pour une liste de toutes les options disponibles, exécutez :

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

Dépannage

  1. Erreur 'Fichier introuvable' : Si le conteneur ne trouve pas le script à exécuter, assurez-vous que la structure du dépôt est intacte et que le Dockerfile est correctement configuré.
  2. Problème de dépendances : Si des dépendances sont manquantes, vérifiez que le fichier requirements.txt est complet.
Télécharger l’outil