Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CrackQL — Ferramenta de teste de penetração GraphQL que explora limites de taxa fracos e análise de custos para força bruta de credenciais, bypass de 2FA, enumeração de usuários e fuzzing de operações por meio de consultas de alias em lote. | Kitploit
Ferramentas/GitHubGitHub/nicholasaleks/crackql
Ataques de SenhaExploração de Aplicações WebTestes de Segurança de APIsFuzzingTestes de Penetração
GitHubnicholasaleks/crackql

CrackQL

Ferramenta de teste de penetração GraphQL que explora limites de taxa fracos e análise de custos para força bruta de credenciais, bypass de 2FA, enumeração de usuários e fuzzing de operações por meio de consultas de alias em lote.

Ver Repositório
349344há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CrackQL

CrackQL é uma ferramenta de brute-force de senhas e fuzzing para GraphQL.

CrackQL

CrackQL é uma ferramenta versátil de teste de penetração GraphQL que explora controles deficientes de limite de taxa e análise de custos para realizar brute-force de credenciais e fuzzear operações.

Índice

  • Como funciona
  • Casos de Uso de Ataque
    • Evasão de Defesa
    • Password Spraying (Força Bruta)
    • Bypass de Autenticação de Dois Fatores (OTP)
    • Enumeração de Contas de Usuário
    • Referência Direta Insegura a Objetos
    • Fuzzing Geral
  • Entradas
  • Instalação
  • Configuração
  • Mantenedores
  • Menções

Como funciona?

O CrackQL funciona agrupando automaticamente uma única consulta ou mutação GraphQL em várias operações com alias. Ele determina o número de aliases a serem usados com base nas variáveis de entrada do CSV. Após gerar programaticamente o documento GraphQL agrupado, o CrackQL então agrupa e envia o(s) payload(s) para a API GraphQL alvo e analisa os resultados e erros.

Casos de Uso de Ataque

O CrackQL pode ser usado para uma ampla gama de ataques GraphQL, pois gera programaticamente payloads com base em uma lista de entradas dinâmicas.

Evasão de Defesa

Ao contrário do Burp Intruder, que envia uma requisição para cada payload único, o CrackQL evade as defesas tradicionais de monitoramento de limite de taxa de APIs HTTP usando múltiplas consultas com alias para inserir grandes conjuntos de credenciais em uma única requisição HTTP. Para contornar as defesas de análise de custo de consulta, o CrackQL pode ser otimizado para usar uma série de operações agrupadas menores (-b) bem como um atraso de tempo (-D).

Password Spraying (Força Bruta)

O CrackQL é perfeito contra implantações GraphQL que utilizam operações de autenticação GraphQL in-band (como o GraphQL Authentication Module). O exemplo abaixo de password spraying funciona contra o DVGA com o dicionário sample-inputs/users-and-passwords.csv.

sample-queries/login.graphql

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

Bypass de Autenticação de Dois Fatores (OTP)

É possível usar o CrackQL para contornar a autenticação de dois fatores enviando todos os tokens OTP (One Time Password).

sample-queries/otp-bypass.graphql

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

Enumeração de Contas de Usuário

O CrackQL também pode ser usado para ataques de enumeração para descobrir IDs de usuário, nomes de usuário e endereços de e-mail válidos.

sample-queries/enumeration.graphql

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

Referência Direta Insegura a Objetos

O CrackQL pode ser usado para iterar sobre um grande número de identificadores únicos potenciais para vazar informações de objetos.

sample-queries/idor.graphql

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

Fuzzing Geral

O CrackQL pode ser usado para operações gerais de fuzzing de entrada, como enviar payloads potenciais de SQLi e XSS.

Entradas

O CrackQL gerará payloads com base nas variáveis de entrada definidas por um arquivo CSV. O CrackQL exige que o cabeçalho do CSV corresponda ao nome da 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

Instalação

Requisitos

  • Python3
  • Requests
  • GraphQL
  • Jinja

Clonar Repositório

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

Obter Dependências

pip install -r requirements.txt

Executar 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.

Configuração

Use config.py para definir cookies HTTP, cabeçalhos ou proxies se o endpoint exigir autenticação.

Mantenedores

  • Nick Aleks
  • Dolev Farhi

Menções

  • Kitploit
Baixar ferramenta