Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CrackQL — GraphQL-Penetrationstest-Tool, das schwache Ratenbegrenzungen und Kostenanalysen ausnutzt, um Anmeldeinformationen zu erraten, 2FA zu umgehen, Benutzer zu enumerieren und Operationen mittels gebündelter Alias-Abfragen zu fuzzen. | Kitploit
Tools/GitHubGitHub/nicholasaleks/crackql
PasswortangriffeWebanwendungs-ExploitationAPI-SicherheitstestsFuzzingPenetrationstests
GitHubnicholasaleks/crackql

CrackQL

GraphQL-Penetrationstest-Tool, das schwache Ratenbegrenzungen und Kostenanalysen ausnutzt, um Anmeldeinformationen zu erraten, 2FA zu umgehen, Benutzer zu enumerieren und Operationen mittels gebündelter Alias-Abfragen zu fuzzen.

Repository anzeigen
349344vor 3 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CrackQL

CrackQL ist ein GraphQL-Passwort-Brute-Force- und Fuzzing-Werkzeug.

CrackQL

CrackQL ist ein vielseitiges GraphQL-Penetrationstest-Werkzeug, das schlechte Ratenbegrenzungs- und Kostenanalyse-Kontrollen ausnutzt, um Anmeldeinformationen zu erraten und Operationen zu fuzzen.

Inhaltsverzeichnis

  • Funktionsweise
  • Angriffsszenarien
    • Umgehung von Abwehrmaßnahmen
    • Password-Spraying und Brute-Force
    • Zwei-Faktor-Authentifizierungs-OTP-Bypass
    • Benutzerkonten-Enumeration
    • Insecure Direct Object Reference
    • Allgemeines Fuzzing
  • Eingaben
  • Installation
  • Konfiguration
  • Maintainer
  • Erwähnungen

Funktionsweise?

CrackQL funktioniert, indem es automatisch eine einzelne GraphQL-Abfrage oder -Mutation in mehrere Alias-Operationen aufteilt. Die Anzahl der zu verwendenden Aliase wird basierend auf den CSV-Eingabevariablen bestimmt. Nachdem das gebündelte GraphQL-Dokument programmatisch erstellt wurde, bündelt und sendet CrackQL die Nutzlast(en) an die Ziel-GraphQL-API und analysiert die Ergebnisse und Fehler.

Angriffsszenarien

CrackQL kann für eine breite Palette von GraphQL-Angriffen verwendet werden, da es Nutzlasten basierend auf einer Liste dynamischer Eingaben programmatisch generiert.

Umgehung von Abwehrmaßnahmen

Im Gegensatz zu Burp Intruder, der für jede einzelne Nutzlast eine Anfrage sendet, umgeht CrackQL herkömmliche API-HTTP-Ratenbegrenzungs-Überwachungen, indem es mehrere Alias-Abfragen verwendet, um große Sätze von Anmeldeinformationen in einzelne HTTP-Anfragen zu packen. Um Kostenanalyse-Abwehrmaßnahmen zu umgehen, kann CrackQL optimiert werden, indem eine Reihe kleinerer gebündelter Operationen (-b) sowie eine zeitliche Verzögerung (-D) verwendet werden.

Password-Spraying und Brute-Force

CrackQL ist ideal gegen GraphQL-Bereitstellungen, die In-Band-GraphQL-Authentifizierungsoperationen (wie das GraphQL Authentication Module) nutzen. Das folgende Beispiel für Password-Spraying funktioniert gegen DVGA mit dem Wörterbuch sample-inputs/users-and-passwords.csv.

sample-queries/login.graphql

root@kitploit:~
mutation {
  login(username: {{username|str}}, password: {{password|str}}) {
    accessToken
  }
}

Zwei-Faktor-Authentifizierungs-OTP-Bypass

Es ist möglich, CrackQL zu verwenden, um die Zwei-Faktor-Authentifizierung zu umgehen, indem alle OTP-Token (Einmalpasswörter) gesendet werden.

sample-queries/otp-bypass.graphql

root@kitploit:~
mutation {
  twoFactor(otp: {{otp|int}}) {
    accessToken
  }
}

Benutzerkonten-Enumeration

CrackQL kann auch für Enumeration-Angriffe verwendet werden, um gültige Benutzer-IDs, Benutzernamen und E-Mail-Adressen zu entdecken.

sample-queries/enumeration.graphql

root@kitploit:~
query {
  signup(email: {{email|str}}, password: {{password|str}}) {
    user {
      email
    }
  }
}

Insecure Direct Object Reference

CrackQL könnte verwendet werden, um eine große Anzahl potenzieller eindeutiger Identifikatoren zu durchlaufen und Objektinformationen preiszugeben.

sample-queries/idor.graphql

root@kitploit:~
query {
  profile(uuid: {{uuid|int}}) {
    name
    email
    picture
  }
}

Allgemeines Fuzzing

CrackQL kann für allgemeine Eingabe-Fuzzing-Operationen verwendet werden, beispielsweise zum Senden potenzieller SQLi- und XSS-Nutzlasten.

Eingaben

CrackQL generiert Nutzlasten basierend auf Eingabevariablen, die durch eine CSV-Datei definiert werden. CrackQL erfordert, dass der CSV-Header mit dem Eingabenamen übereinstimmt.

sample-inputs/usernames_and_passwords.csv

root@kitploit:~
username, password
admin, admin
admin, password
admin, pass
admin, pass123
admin, password123
operator, operator
operator, password
operator, pass
operator, pass123
operator, password123

Gültige Eingabetypen

  • str
  • int
  • float

Installation

Voraussetzungen

  • Python3
  • Requests
  • GraphQL
  • Jinja

Repository klonen

root@kitploit:~
git clone [email protected]:nicholasaleks/CrackQL.git

Abhängigkeiten installieren

pip install -r requirements.txt

CrackQL ausführen

python3 CrackQL.py -h

root@kitploit:~
Usage: python3 CrackQL.py -t http://example.com/graphql -q sample-queries/login.graphql -i sample-inputs/usernames_and_passwords.csv

Options:
  -h, --help            show this help message and exit
  -t URL, --target=URL  Target url with a path to the GraphQL endpoint
  -q QUERY, --query=QUERY
                        Input query or mutation operation with variable
                        payload markers
  -i INPUT_CSV, --input-csv=INPUT_CSV
                        Path to a csv list of arguments (i.e. usernames,
                        emails, ids, passwords, otp_tokens, etc.)
  -d DELIMITER, --delimiter=DELIMITER
                        CSV input delimiter (default: ",")
  -o OUTPUT_DIRECTORY, --output-directory=OUTPUT_DIRECTORY
                        Output directory to store results (default:
                        ./results/[domain]_[uuid]/
  -b BATCH_SIZE, --batch-size=BATCH_SIZE
                        Number of batch operations per GraphQL document
                        request (default: 100)
  -D DELAY, --delay=DELAY
                        Time delay in seconds between batch requests (default:
                        0)
  --verbose             Prints out verbose messaging
  -v, --version         Print out the current version and exit.

Konfiguration

Verwende config.py, um HTTP-Cookies, Header oder Proxys zu setzen, falls der Endpunkt eine Authentifizierung erfordert.

Maintainer

  • Nick Aleks
  • Dolev Farhi

Erwähnungen

  • Kitploit
Tool herunterladen