
Kit de herramientas de pruebas de seguridad automatizadas para GraphQL
Graph Crawler es el kit de pruebas automatizadas más potente para cualquier endpoint de GraphQL.
NUEVO: Puede buscar endpoints por ti usando la potente herramienta Graphinder de Escape Technology. Solo apúntalo a un dominio y añade la opción '-e' y Graphinder realizará enumeración de subdominios + búsqueda en directorios populares de endpoints GraphQL. Después de todo esto, GraphCrawler tomará el control y trabajará en cada hallazgo. Si no se puede realizar la introspección del esquema, puedes proporcionarlo como un archivo json con la opción '-s'.
Ejecutará y comprobará si la mutación está habilitada, buscará consultas sensibles disponibles, como usuarios y archivos, y también probará las consultas fáciles que encuentre para ver si se requiere autenticación.
Si la introspección no está habilitada en el endpoint, comprobará si es un servidor Apollo y luego podrá ejecutar Clairvoyance para realizar un ataque de fuerza bruta y obtener las sugerencias para intentar construir el esquema nosotros mismos. (Consulta el proyecto Clairvoyance para obtener más detalles sobre esto).
Luego puntuará los hallazgos del 1 al 10, siendo 10 el más crítico.
Si quieres profundizar en el esquema, también puedes usar graphql-path-enum para buscar rutas hacia ciertos tipos, como IDs de usuario, correos electrónicos, etc.
Espero que esto te ahorre tanto tiempo como me ha ahorrado a mí.
python graphCrawler.py -u https://test.com/graphql/api -o <fileName> -a "<headers>"
██████╗ ██████╗ █████╗ ██████╗ ██╗ ██╗ ██████╗██████╗ █████╗ ██╗ ██╗██╗ ███████╗██████╗
██╔════╝ ██╔══██╗██╔══██╗██╔══██╗██║ ██║██╔════╝██╔══██╗██╔══██╗██║ ██║██║ ██╔════╝██╔══██╗
██║ ███╗██████╔╝███████║██████╔╝███████║██║ ██████╔╝███████║██║ █╗ ██║██║ █████╗ ██████╔╝
██║ ██║██╔══██╗██╔══██║██╔═══╝ ██╔══██║██║ ██╔══██╗██╔══██║██║███╗██║██║ ██╔══╝ ██╔══██╗
╚██████╔╝██║ ██║██║ ██║██║ ██║ ██║╚██████╗██║ ██║██║ ██║╚███╔███╔╝███████╗███████╗██║ ██║
╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚══╝╚══╝ ╚══════╝╚══════╝╚═╝ ╚═╝
La opción de salida no es obligatoria y por defecto generará la salida en schema.json 2. Como Docker Nota: Como graphcrawler usa algunas opciones que necesitan archivos como entrada o producen salida, se recomienda mantener todos esos archivos en un directorio de trabajo y montarlo en la ruta del contenedor /workspace. Toda tu salida se guardará en ese directorio montado.
docker build -t graphcrawler:1.2 .
docker run -v /path_to_workspace:/workspace -it graphcrawler:1.2 -u https://test.com/graphql/api -o <filename> -a "<headers>"
Lista de palabras de google-10000-english