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
graphql-cop — Utilidad ligera de Python para auditoría de seguridad automatizada de APIs GraphQL. Detecta configuraciones incorrectas, fugas de información y vulnerabilidades de denegación de servicio con comandos de reproducción cURL. | Kitploit
Herramientas/GitHubGitHub/dolevf/graphql-cop
Escáneres de VulnerabilidadesEscáneres de Vulnerabilidades WebAnálisis Dinámico de Código (DAST)Explotación de Aplicaciones WebPruebas de Seguridad de APIsSeguridad WebPruebas de PenetraciónSeguridad de APIsTop en Seguridad de APIs #5Top en Pruebas de Seguridad de APIs #5
6841019hace 10 mesesRevisado por Kitploit
Top en Análisis Dinámico de Código (DAST) #15
Top en Explotación de Aplicaciones Web #16
Top en Seguridad Web #15
Top en Escáneres de Vulnerabilidades Web #15
GitHubdolevf/graphql-cop

graphql-cop

Utilidad ligera de Python para auditoría de seguridad automatizada de APIs GraphQL. Detecta configuraciones incorrectas, fugas de información y vulnerabilidades de denegación de servicio con comandos de reproducción cURL.

Ver Repositorio

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

GraphQL Cop - Utilidad de Auditoría de Seguridad para GraphQL

GraphQL Cop

Acerca de

GraphQL Cop es una pequeña utilidad de Python para ejecutar pruebas de seguridad comunes contra APIs de GraphQL. GraphQL Cop es perfecto para ejecutar verificaciones CI/CD en GraphQL. Es ligero y cubre problemas de seguridad interesantes en GraphQL.

GraphQL Cop te permite reproducir los hallazgos proporcionando comandos cURL ante cualquier vulnerabilidad identificada.

Requisitos

  • Python3
  • Biblioteca Requests

Detecciones

  • Sobrecarga de Alias (DoS)
  • Consultas por Lotes (DoS)
  • Consultas basadas en GET (CSRF)
  • Consultas basadas en POST usando payloads urlencoded (CSRF)
  • Modos de Trazado/Depuración de GraphQL (Fuga de Info)
  • Duplicación de Campos (DoS)
  • Sugerencias de Campos (Fuga de Info)
  • GraphiQL (Fuga de Info)
  • Introspección (Fuga de Info)
  • Sobrecarga de Directivas (DoS)
  • Consulta Circular usando Introspección (DoS)
  • Soporte de Mutaciones sobre métodos GET (CSRF)

Instalación

A continuación se deben ejecutar los comandos para instalar las dependencias.

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

El primer comando crea un entorno virtual en el directorio especificado por path/to/venv. El segundo comando activa el entorno virtual. El último comando instala todos los paquetes de Python listados en 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)

Probar un sitio web

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 una prueba específica

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)

Probar un sitio web, volcar a una salida JSON analizable, comando de reproducción 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'}]

Probar un sitio web a través de un proxy (ej. Burp Suite escuchando en 127.0.0.1:8080) con cabeceras personalizadas (ej. 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)

Configuración y Uso de Docker

Requisitos previos

  • Docker instalado en tu máquina.

Construir la Imagen Docker

  1. Clona el repositorio:
root@kitploit:~
git clone https://github.com/dolevf/graphql-cop.git
cd graphql-cop
  1. Construye la imagen Docker:
root@kitploit:~
docker build -t graphql-cop:latest .

Ejecutar el Contenedor Docker

Puedes ejecutar el contenedor Docker y pasar argumentos al script graphql-cop de la siguiente manera:

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

Ejemplo

Aquí hay un ejemplo de ejecución del contenedor:

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

Nota

Para obtener una lista de todas las opciones disponibles, ejecuta:

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

Solución de problemas

  1. Error de Archivo No Encontrado: Si el contenedor no puede encontrar el script a ejecutar, asegúrate de que la estructura del repositorio esté intacta y el Dockerfile esté configurado correctamente.
  2. Problema de Dependencias: Si faltan dependencias, verifica que el archivo requirements.txt esté completo.
Descargar herramienta