Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/nicholasaleks/crackql
Ataques de ContraseñasExplotación de Aplicaciones WebPruebas de Seguridad de APIsFuzzingPruebas de Penetración
GitHubnicholasaleks/crackql

CrackQL

Herramienta de pruebas de penetración de GraphQL que explota límites de tasa débiles y análisis de costos para realizar fuerza bruta de credenciales, eludir 2FA, enumerar usuarios y realizar fuzzing de operaciones mediante consultas de alias por lotes.

Ver Repositorio
349344hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CrackQL

CrackQL es una utilidad de fuzzing y fuerza bruta de contraseñas para GraphQL.

CrackQL

CrackQL es una herramienta versátil de pruebas de penetración para GraphQL que explota controles deficientes de limitación de velocidad y análisis de costos para realizar ataques de fuerza bruta a credenciales y fuzzing de operaciones.

Tabla de contenidos

  • Cómo funciona
  • Casos de uso de ataque
    • Evasión de defensas
    • Ataque de fuerza bruta por pulverización de contraseñas
    • Bypass de autenticación de dos factores OTP
    • Enumeración de cuentas de usuario
    • Referencia directa a objeto insegura
    • Fuzzing general
  • Entradas
  • Instalación
  • Configuración
  • Mantenedores
  • Menciones

¿Cómo funciona?

CrackQL funciona agrupando automáticamente una única consulta o mutación GraphQL en varias operaciones con alias. Determina el número de alias a utilizar basándose en las variables de entrada CSV. Después de generar programáticamente el documento GraphQL agrupado, CrackQL envía el/los payload(s) a la API GraphQL objetivo y analiza los resultados y errores.

Casos de uso de ataque

CrackQL se puede utilizar para una amplia gama de ataques GraphQL, ya que genera programáticamente payloads basados en una lista de entradas dinámicas.

Evasión de defensas

A diferencia de Burp Intruder, que envía una solicitud por cada payload único, CrackQL evade las defensas tradicionales de monitoreo de límite de tasa HTTP de la API utilizando múltiples consultas con alias para introducir grandes conjuntos de credenciales en una sola solicitud HTTP. Para evadir las defensas de análisis de costos de consultas, CrackQL se puede optimizar utilizando una serie de operaciones agrupadas más pequeñas (-b) así como un retardo de tiempo (-D).

Ataque de fuerza bruta por pulverización de contraseñas

CrackQL es perfecto contra implementaciones GraphQL que aprovechan operaciones de autenticación GraphQL en banda (como el Módulo de Autenticación GraphQL). El siguiente ejemplo de pulverización de contraseñas funciona contra DVGA con el diccionario sample-inputs/users-and-passwords.csv.

sample-queries/login.graphql

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

Bypass de autenticación de dos factores OTP

Es posible usar CrackQL para evitar la autenticación de dos factores enviando todos los tokens OTP (contraseña de un solo uso).

sample-queries/otp-bypass.graphql

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

Enumeración de cuentas de usuario

CrackQL también se puede utilizar para ataques de enumeración con el fin de descubrir identificadores de usuario, nombres de usuario y direcciones de correo electrónico válidos.

sample-queries/enumeration.graphql

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

Referencia directa a objeto insegura

CrackQL podría utilizarse para iterar sobre un gran número de posibles identificadores únicos con el fin de filtrar información de objetos.

sample-queries/idor.graphql

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

Fuzzing general

CrackQL se puede utilizar para operaciones generales de fuzzing de entrada, como el envío de posibles payloads de SQLi y XSS.

Entradas

CrackQL generará payloads basados en variables de entrada definidas por un archivo CSV. CrackQL requiere que el encabezado del CSV coincida con el nombre de la entrada.

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

Tipos de entrada válidos

  • str
  • int
  • float

Instalación

Requisitos

  • Python3
  • Requests
  • GraphQL
  • Jinja

Clonar el repositorio

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

Obtener dependencias

pip install -r requirements.txt

Ejecutar 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  URL de destino con la ruta al endpoint GraphQL
  -q QUERY, --query=QUERY
                        Consulta o mutación de entrada con marcadores de
                        variable de payload
  -i INPUT_CSV, --input-csv=INPUT_CSV
                        Ruta a una lista CSV de argumentos (por ejemplo,
                        nombres de usuario, correos electrónicos, IDs,
                        contraseñas, tokens OTP, etc.)
  -d DELIMITER, --delimiter=DELIMITER
                        Delimitador de entrada CSV (por defecto: ",")
  -o OUTPUT_DIRECTORY, --output-directory=OUTPUT_DIRECTORY
                        Directorio de salida para almacenar resultados (por
                        defecto: ./results/[domain]_[uuid]/
  -b BATCH_SIZE, --batch-size=BATCH_SIZE
                        Número de operaciones por lote por solicitud de
                        documento GraphQL (por defecto: 100)
  -D DELAY, --delay=DELAY
                        Retardo en segundos entre solicitudes por lote (por
                        defecto: 0)
  --verbose             Muestra mensajes detallados
  -v, --version         Muestra la versión actual y sale.

Configuración

Utilice config.py para establecer cookies HTTP, cabeceras o proxies si el endpoint requiere autenticación.

Mantenedores

  • Nick Aleks
  • Dolev Farhi

Menciones

  • Kitploit
Descargar herramienta