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
graphql-cop — Utilitário Python leve para auditoria de segurança automatizada de APIs GraphQL. Detecta configurações incorretas, vazamentos de informações e vulnerabilidades de negação de serviço com comandos de reprodução cURL. | Kitploit
Ferramentas/GitHubGitHub/dolevf/graphql-cop
Scanners de VulnerabilidadesScanners de Vulnerabilidades WebAnálise Dinâmica de Código (DAST)Exploração de Aplicações WebTestes de Segurança de APIsSegurança WebTestes de PenetraçãoSegurança de APITop em Segurança de API nº5Top em Testes de Segurança de APIs nº5
6841019há 10 mesesRevisado pelo Kitploit
Top em Análise Dinâmica de Código (DAST) nº15
Top em Exploração de Aplicações Web nº16
Top em Segurança Web nº15
Top em Scanners de Vulnerabilidades Web nº15
GitHubdolevf/graphql-cop

graphql-cop

Utilitário Python leve para auditoria de segurança automatizada de APIs GraphQL. Detecta configurações incorretas, vazamentos de informações e vulnerabilidades de negação de serviço com comandos de reprodução cURL.

Ver Repositório

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

GraphQL Cop - Utilitário de Auditoria de Segurança para GraphQL

GraphQL Cop

Sobre

GraphQL Cop é um pequeno utilitário Python para executar testes de segurança comuns contra APIs GraphQL. GraphQL Cop é perfeito para executar verificações CI/CD em GraphQL. É leve e cobre questões interessantes de segurança em GraphQL.

GraphQL Cop permite que você reproduza as descobertas fornecendo comandos cURL para quaisquer vulnerabilidades identificadas.

Requisitos

  • Python3
  • Biblioteca Requests

Detecções

  • Sobrecarga de Alias (DoS)
  • Consultas em Lote (DoS)
  • Consultas baseadas em GET (CSRF)
  • Consultas baseadas em POST usando payloads urlencoded (CSRF)
  • Modos de Rastreamento / Depuração do GraphQL (Vazamento de Informações)
  • Duplicação de Campos (DoS)
  • Sugestões de Campos (Vazamento de Informações)
  • GraphiQL (Vazamento de Informações)
  • Introspecção (Vazamento de Informações)
  • Sobrecarga de Diretivas (DoS)
  • Consulta Circular usando Introspecção (DoS)
  • Suporte a Mutação sobre métodos GET (CSRF)

Instalação

Os comandos abaixo devem ser executados para instalar as dependências.

root@kitploit:~
python3 -m venv path/to/venv
source path/to/venv/bin/activate
python3 -m pip install -r requirements.txt

O primeiro comando cria um ambiente virtual no diretório especificado por path/to/venv. O segundo comando ativa o ambiente virtual. O último comando instala todos os pacotes Python listados no requirements.txt.

Uso

root@kitploit:~
$ python3 graphql-cop.py -h
Usage: graphql-cop.py -t http://example.com -o json

Options:
  -h, --help            show this help message and exit
  -t URL, --target=URL  target url with the path - if a GraphQL path is not
                        provided, GraphQL Cop will iterate through a series of
                        common GraphQL paths
  -H HEADER, --header=HEADER
                        Append Header(s) to the request '{"Authorization":
                        "Bearer eyjt"}' - Use multiple -H for additional
                        Headers
  -o FORMAT, --output=FORMAT
                        json
  -e EXCLUDED_TESTS, --excluded-tests=EXCLUDED_TESTS
                        Exclude specific tests
  -l, --list-tests      List available tests
  -f, --force           Forces a scan when GraphQL cannot be detected
  -d, --debug           Append a header with the test name for debugging
  -x PROXY, --proxy=PROXY
                        HTTP(S) proxy URL in the form
                        http://user:pass@host:port
  -w WORDLIST, --wordlist=WORDLIST
                        Path to a list of custom GraphQL endpoints
  -v, --version         Print out the current version and exit.
  -T, --tor             Sends the request through the Tor network (ensure Tor
                        is running and properly configured)

Testar um site

root@kitploit:~
$ python3 graphql-cop.py -t https://mywebsite.com/graphql

[HIGH] Introspection Query Enabled (Information Leakage)
[LOW] GraphQL Playground UI (Information Leakage)
[HIGH] Alias Overloading with 100+ aliases is allowed (Denial of Service)
[HIGH] Queries are allowed with 1000+ of the same repeated field (Denial of Service)

Excluir um teste específico

root@kitploit:~
$ python3 graphql-cop.py -t https://mywebsite.com/graphql -e field_duplication

[HIGH] Introspection Query Enabled (Information Leakage)
[LOW] GraphQL Playground UI (Information Leakage)
[HIGH] Alias Overloading with 100+ aliases is allowed (Denial of Service)
[HIGH] Queries are allowed with 1000+ of the same repeated field (Denial of Service)

Testar um site, gerar saída JSON analisável, comando de reprodução cURL

root@kitploit:~
python3 graphql-cop.py -t https://mywebsite.com/graphql -o json

 {'curl_verify': 'curl -X POST -H "User-Agent: graphql-cop/1.2" -H '
                 '"Accept-Encoding: gzip, deflate" -H "Accept: */*" -H '
                 '"Connection: keep-alive" -H "Content-Length: 33" -H '
                 '"Content-Type: application/json" -d \'{"query": "query { '
                 '__typename }"}\' \'http://localhost:5013/graphql\'',
  'description': 'Tracing is Enabled',
  'impact': 'Information Leakage',
  'result': False,
  'severity': 'INFO',
  'color': 'green',
  'title': 'Trace Mode'},
 {'curl_verify': 'curl -X POST -H "User-Agent: graphql-cop/1.2" -H '
                 '"Accept-Encoding: gzip, deflate" -H "Accept: */*" -H '
                 '"Connection: keep-alive" -H "Content-Length: 64" -H '
                 '"Content-Type: application/json" -d \'{"query": "query { '
                 '__typename @aa@aa@aa@aa@aa@aa@aa@aa@aa@aa }"}\' '
                 "'http://localhost:5013/graphql'",
  'description': 'Multiple duplicated directives allowed in a query',
  'impact': 'Denial of Service',
  'result': True,
  'severity': 'HIGH',
  'color': 'red',
  'title': 'Directive Overloading'}]

Testar um site através de um proxy (ex: Burp Suite ouvindo em 127.0.0.1:8080) com cabeçalhos personalizados (ex: Authorization):

root@kitploit:~
$ python3 graphql-cop.py -t https://mywebsite.com/graphql --proxy=http://127.0.0.1:8080 --header '{"Authorization": "Bearer token_here"}'

[HIGH] Introspection Query Enabled (Information Leakage)
[LOW] GraphQL Playground UI (Information Leakage)
[HIGH] Alias Overloading with 100+ aliases is allowed (Denial of Service)
[HIGH] Queries are allowed with 1000+ of the same repeated field (Denial of Service)

Configuração e Uso do Docker

Pré-requisitos

  • Docker instalado em sua máquina.

Construindo a Imagem Docker

  1. Clone o repositório:
root@kitploit:~
git clone https://github.com/dolevf/graphql-cop.git
cd graphql-cop
  1. Construa a imagem Docker:
root@kitploit:~
docker build -t graphql-cop:latest .

Executando o Contêiner Docker

Você pode executar o contêiner Docker e passar argumentos para o script graphql-cop da seguinte forma:

root@kitploit:~
docker run --rm -it graphql-cop:latest -t <GRAPHQL_ENDPOINT> -H '{"<HEADER_KEY>": "<HEADER_VALUE>"}'

Exemplo

Aqui está um exemplo de execução do contêiner:

root@kitploit:~
docker run --rm -it graphql-cop:latest -t https://example.com/graphql -H '{"Authorization": "Bearer abc123xyz"}'

Nota

Para uma lista de todas as opções disponíveis, execute:

root@kitploit:~
docker run --rm -it graphql-cop:latest --help

Solução de Problemas

  1. Erro de Arquivo Não Encontrado: Se o contêiner não conseguir encontrar o script para executar, certifique-se de que a estrutura do repositório está intacta e o Dockerfile está configurado corretamente.
  2. Problema de Dependências: Se houver dependências ausentes, verifique se o arquivo requirements.txt está completo.
Baixar ferramenta