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
graphicator — Ferramenta automatizada de enumeração de esquemas GraphQL e extração de dados que itera documentos de introspecção, reconstrói consultas e salva respostas para testes de penetração e avaliações de segurança de API. | Kitploit
Ferramentas/GitHubGitHub/cybervelia/graphicator
Testes de Segurança de APIsColeta de InformaçõesSegurança WebTestes de Penetração
GitHubcybervelia/graphicator

graphicator

Ferramenta automatizada de enumeração de esquemas GraphQL e extração de dados que itera documentos de introspecção, reconstrói consultas e salva respostas para testes de penetração e avaliações de segurança de API.

Ver Repositório
13413há 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

Graphicator

Graphicator é um "raspador" / extrator de GraphQL. A ferramenta itera sobre o documento de introspecção retornado pelo endpoint GraphQL alvo e, em seguida, reestrutura o esquema em um formato interno para poder recriar as consultas suportadas. Quando essas consultas são criadas, elas são usadas para enviar requisições ao endpoint e salva a resposta retornada em um arquivo.

Respostas errôneas não são salvas. Por padrão, a ferramenta armazena em cache as respostas corretas e também armazena em cache os erros, assim, ao executar novamente a ferramenta, ela não acessará as mesmas consultas novamente.

Use com sabedoria e use apenas para alvos com os quais você tem permissão para interagir.

Esperamos que a ferramenta automatize seus próprios testes como um testador de penetração e dê um impulso até mesmo para aqueles que ainda não realizam testes GraphQL.

Para aprender como realizar avaliações em endpoints GraphQL: https://cybervelia.com/?p=736&preview=true

Instalação

Instalar no seu sistema

root@kitploit:~
python3 -m pip install -r requirements.txt

Usando um contêiner

root@kitploit:~
docker run --rm -it -p8005:80 cybervelia/graphicator --target http://the-target:port/graphql --verbose

Quando a tarefa é concluída, ela compacta os resultados e esse zip é disponibilizado via um servidor web servido na porta 8005. Para matar o contêiner, forneça CTRL+C. Quando o contêiner é parado, os dados também são excluídos. Você também pode alterar a porta do host de acordo com suas necessidades.

Uso

root@kitploit:~
python3 graphicator.py [args...]

Configurando um alvo

O primeiro passo é configurar o alvo. Para fazer isso, você deve fornecer uma opção --target ou um arquivo usando --file.

Definindo um único alvo via argumentos

root@kitploit:~
python3 graphicator.py --target https://subdomain.domain:port/graphql

Definindo múltiplos alvos

root@kitploit:~
python3 graphicator.py --target https://subdomain.domain:port/graphql --target https://target2.tld/graphql

Definindo alvos via um arquivo

root@kitploit:~
python3 graphicator.py --file file.txt

O arquivo deve conter uma URL por linha, como a seguir:

root@kitploit:~
http://target1.tld/graphql
http://sub.target2.tld/graphql
http://subxyz.target3.tld:8080/graphql

Usando um Proxy

Você pode conectar a ferramenta a qualquer proxy.

Conectar às configurações padrão do Burp (porta 8080)

root@kitploit:~
python3 graphicator.py --target target --default-burp-proxy

Conectar ao seu próprio proxy

root@kitploit:~
python3 graphicator.py --target target --use-proxy

Conectar via Tor

root@kitploit:~
python3 graphicator.py --target target --use-tor

Usando Cabeçalhos

root@kitploit:~
python3 graphicator.py --target target --header "x-api-key:60b725f10c9c85c70d97880dfe8191b3"

Ativar Modo Verboso

root@kitploit:~
python3 graphicator.py --target target --verbose

Ativar Multithreading

root@kitploit:~
python3 graphicator.py --target target --multi

Desativar avisos para certificados inseguros e autoassinados

root@kitploit:~
python3 graphicator.py --target target --insecure

Evitar usar resultados em cache

root@kitploit:~
python3 graphicator.py --target target --no-cache

Exemplo

root@kitploit:~
python3 graphicator.py --target http://localhost:8000/graphql --verbose --multi

  _____                  __    _             __           
 / ___/____ ___ _ ___   / /   (_)____ ___ _ / /_ ___   ____
/ (_ // __// _ `// _ \ / _ \ / // __// _ `// __// _ \ / __/
\___//_/   \_,_// .__//_//_//_/ \__/ \_,_/ \__/ \___//_/   
               /_/                                         

By @fand0mas

[-] Targets:  1
[-] Headers:  'Content-Type', 'User-Agent'
[-] Verbose
[-] Using cache: True
************************************************************
  0%|                                                     | 0/1 [00:00<?, ?it/s][*] Enumerating... http://localhost:8000/graphql
[*] Retrieving... => query {getArticles  { id,title,views } }
[*] Retrieving... => query {getUsers  { id,username,email,password,level } }
100%|█████████████████████████████████████████████| 1/1 [00:00<00:00, 35.78it/s]
root@kitploit:~
$ cat reqcache/9652f1e7c02639d8f78d1c5263093072fb4fd06c.json 
{
    "data": {
        "getUsers": [
            {
                "id": 1,
                "username": "theo",
                "email": "[email protected]",
                "password": "1234",
                "level": 1
            },
            {
                "id": 2,
                "username": "john",
                "email": "[email protected]",
                "password": "5678",
                "level": 1
            }
        ]
    }
}
root@kitploit:~
$ cat reqcache-queries/9652f1e7c02639d8f78d1c5263093072fb4fd06c.query 
query {getUsers  { id,username,email,password,level } }

Estrutura de Saída

Três pastas são criadas:

  • reqcache: A resposta de cada consulta válida é armazenada em formato JSON
  • reqcache-intro: Todas as consultas de introspecção são armazenadas em um arquivo separado neste diretório
  • reqcache-queries: Todas as consultas são armazenadas em um arquivo separado neste diretório. O nome do arquivo de cada consulta corresponderá ao nome do arquivo correspondente no diretório reqcache que contém a resposta da consulta.

O nome do arquivo é o hash que leva em conta a consulta e a URL.

Licença & EULA

Copyright 2023 Cybervelia Ltd

É concedida permissão, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para lidar com o Software sem restrição, incluindo, sem limitação, os direitos de usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e/ou vender cópias do Software, e permitir que as pessoas a quem o Software é fornecido o façam, sujeitas às seguintes condições:

O aviso de copyright acima e este aviso de permissão devem ser incluídos em todas as cópias ou partes substanciais do Software.

O SOFTWARE É FORNECIDO "COMO ESTÁ", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM DETERMINADO FIM E NÃO VIOLAÇÃO. EM NENHUM CASO OS AUTORES OU DETENTORES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.

Mantenedor

A ferramenta foi criada e é mantida por (@fand0mas).

Contribuições também são bem-vindas.

Baixar ferramenta