
GraphQL toolkit automatisé de test de sécurité
Graph Crawler est le kit de test automatisé le plus puissant pour tout endpoint GraphQL.
NOUVEAU : peut rechercher des endpoints pour vous en utilisant le puissant outil Graphinder d'Escape Technology. Il suffit de le pointer vers un domaine et d'ajouter l'option '-e' ; Graphinder effectuera alors une énumération des sous-domaines + recherche dans les répertoires courants les endpoints GraphQL. Après tout cela, GraphCrawler prendra le relais et travaillera sur chaque découverte. Si le schéma ne peut pas être introspecté, vous pouvez le fournir sous forme de fichier json avec l'option '-s'.
Il parcourra et vérifiera si la mutation est activée, recherchera les requêtes sensibles disponibles, comme les utilisateurs et les fichiers, et testera également les requêtes faciles qu'il trouve pour voir si une authentification est requise.
Si l'introspection n'est pas activée sur l'endpoint, il vérifiera s'il s'agit d'un serveur Apollo et pourra alors exécuter Clairvoyance pour forcer par force brute et récupérer les suggestions afin d'essayer de construire le schéma nous-mêmes. (Voir le projet Clairvoyance pour plus de détails à ce sujet).
Il évaluera ensuite les résultats de 1 à 10, 10 étant le plus critique.
Si vous souhaitez approfondir le schéma, vous pouvez également utiliser graphql-path-enum pour rechercher des chemins vers certains types, comme les identifiants utilisateur, les e-mails, etc.
J'espère que cela vous fera gagner autant de temps que cela m'en a fait gagner.
python graphCrawler.py -u https://test.com/graphql/api -o <fileName> -a "<headers>"
██████╗ ██████╗ █████╗ ██████╗ ██╗ ██╗ ██████╗██████╗ █████╗ ██╗ ██╗██╗ ███████╗██████╗
██╔════╝ ██╔══██╗██╔══██╗██╔══██╗██║ ██║██╔════╝██╔══██╗██╔══██╗██║ ██║██║ ██╔════╝██╔══██╗
██║ ███╗██████╔╝███████║██████╔╝███████║██║ ██████╔╝███████║██║ █╗ ██║██║ █████╗ ██████╔╝
██║ ██║██╔══██╗██╔══██║██╔═══╝ ██╔══██║██║ ██╔══██╗██╔══██║██║███╗██║██║ ██╔══╝ ██╔══██╗
╚██████╔╝██║ ██║██║ ██║██║ ██║ ██║╚██████╗██║ ██║██║ ██║╚███╔███╔╝███████╗███████╗██║ ██║
╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚══╝╚══╝ ╚══════╝╚══════╝╚═╝ ╚═╝
L'option de sortie n'est pas obligatoire et par défaut, la sortie se fera dans schema.json 2. Avec Docker Remarque : comme graphcrawler utilise certaines options qui nécessitent des fichiers en entrée ou produisent une sortie, il est conseillé de garder tous ces fichiers dans un répertoire de travail et de le monter sur le chemin du conteneur /workspace. Toute votre sortie sera enregistrée dans ce répertoire monté.
docker build -t graphcrawler:1.2 .
docker run -v /path_to_workspace:/workspace -it graphcrawler:1.2 -u https://test.com/graphql/api -o <filename> -a "<headers>"
Liste de mots provenant de google-10000-english