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/cybervelia/graphicator
Pruebas de Seguridad de APIsRecopilación de InformaciónSeguridad WebPruebas de Penetración
GitHubcybervelia/graphicator

graphicator

Herramienta automatizada de enumeración de esquemas GraphQL y extracción de datos que itera documentos de introspección, reconstruye consultas y guarda respuestas para pruebas de penetración y evaluaciones de seguridad de API.

Ver Repositorio
134136hace 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

Graphicator

Graphicator es un "scraper" / extractor de GraphQL. La herramienta itera sobre el documento de introspection devuelto por el endpoint de GraphQL objetivo, y luego reestructura el esquema en una forma interna para poder recrear las consultas soportadas. Cuando se crean dichas consultas, las utiliza para enviar solicitudes al endpoint y guarda la respuesta devuelta en un archivo.

Las respuestas erróneas no se guardan. Por defecto, la herramienta almacena en caché las respuestas correctas y también los errores, por lo que al volver a ejecutar la herramienta no volverá a realizar las mismas consultas.

Úsala con prudencia y solo en objetivos para los que tengas permiso de interactuar.

Esperamos que la herramienta automatice tus propias pruebas como pentester y dé un impulso incluso a aquellos que aún no realizan pruebas GraphQL.

Para aprender cómo realizar evaluaciones en endpoints GraphQL: https://cybervelia.com/?p=736&preview=true

Instalación

Instalar en tu sistema

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

Usar un contenedor en su lugar

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

Cuando la tarea finaliza, comprime los resultados y dicho zip se proporciona a través de un servidor web servido en el puerto 8005. Para detener el contenedor, presiona CTRL+C. Cuando el contenedor se detiene, los datos también se eliminan. También puedes cambiar el puerto del host según tus necesidades.

Uso

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

Configurar un objetivo

El primer paso es configurar el objetivo. Para ello, debes proporcionar una opción --target o un archivo usando --file.

Configurar un solo objetivo mediante argumentos

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

Configurar múltiples objetivos

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

Configurar objetivos mediante un archivo

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

El archivo debe contener una URL por línea de la siguiente manera:

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

Usar un Proxy

Puedes conectar la herramienta con cualquier proxy.

Conectar a la configuración predeterminada de Burp (puerto 8080)

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

Conectar a tu propio proxy

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

Conectar mediante Tor

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

Usar Cabeceras

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

Activar Verbose

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

Activar Multihilo

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

Desactivar advertencias para certificados inseguros y autofirmados

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

Evitar usar resultados en caché

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

Ejemplo

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 } }

Estructura de Salida

Se crean tres carpetas:

  • reqcache: La respuesta de cada consulta válida se almacena en formato JSON
  • reqcache-intro: Todas las consultas de introspection se almacenan en un archivo separado en este directorio
  • reqcache-queries: Todas las consultas se almacenan en un archivo separado en este directorio. El nombre de archivo de cada consulta coincidirá con el nombre de archivo correspondiente en el directorio reqcache que contiene la respuesta de la consulta.

El nombre de archivo es el hash que tiene en cuenta la consulta y la URL.

Licencia y EULA

Copyright 2023 Cybervelia Ltd

Por la presente se concede permiso, libre de cargos, a cualquier persona que obtenga una copia de este software y de los archivos de documentación asociados (el "Software"), para tratar el Software sin restricción, incluidos, sin limitación, los derechos de uso, copia, modificación, fusión, publicación, distribución, sublicencia y/o venta de copias del Software, y para permitir a las personas a las que se les proporcione el Software hacer lo mismo, sujeto a las siguientes condiciones:

El aviso de copyright anterior y este aviso de permiso deberán incluirse en todas las copias o partes sustanciales del Software.

EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES POR NINGUNA RECLAMACIÓN, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, EXTRACONTRACTUAL O DE OTRO TIPO, QUE SURJA DE O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTRO TIPO DE ACCIONES EN EL SOFTWARE.

Mantenedor

La herramienta ha sido creada y mantenida por (@fand0mas).

Las contribuciones también son bienvenidas.

Descargar herramienta