
Toolkit per test di sicurezza automatizzati di GraphQL
Graph Crawler è il toolkit di test automatizzato più potente per qualsiasi endpoint GraphQL.
NUOVO: Può cercare gli endpoint per te usando il potente strumento Graphinder di Escape Technology. Basta puntarlo verso un dominio e aggiungere l'opzione '-e' e Graphinder eseguirà l'enumerazione dei sottodomini + la ricerca nelle directory più comuni per gli endpoint GraphQL. Dopo tutto ciò, GraphCrawler prenderà il controllo e lavorerà su ogni risultato. Se lo schema non può essere introspettato, puoi fornirlo come file json con l'opzione '-s'.
Eseguirà una verifica per controllare se la mutation è abilitata, cercherà eventuali query sensibili disponibili, come utenti e file, e testerà anche le query facili che trova per vedere se è richiesta l'autenticazione.
Se l'introspezione non è abilitata sull'endpoint, controllerà se si tratta di un Apollo Server e quindi potrà eseguire Clairvoyance per forzare brute e catturare i suggerimenti per cercare di costruire lo schema da soli. (Vedere il progetto Clairvoyance per maggiori dettagli). Assegnerà poi un punteggio ai risultati da 1 a 10, dove 10 è il più critico.
Se vuoi approfondire lo schema, puoi anche usare graphql-path-enum per cercare percorsi verso determinati tipi, come ID utente, email, ecc.
Spero che questo ti faccia risparmiare tanto tempo quanto ne ha fatto risparmiare a me
python graphCrawler.py -u https://test.com/graphql/api -o <fileName> -a "<headers>"
██████╗ ██████╗ █████╗ ██████╗ ██╗ ██╗ ██████╗██████╗ █████╗ ██╗ ██╗██╗ ███████╗██████╗
██╔════╝ ██╔══██╗██╔══██╗██╔══██╗██║ ██║██╔════╝██╔══██╗██╔══██╗██║ ██║██║ ██╔════╝██╔══██╗
██║ ███╗██████╔╝███████║██████╔╝███████║██║ ██████╔╝███████║██║ █╗ ██║██║ █████╗ ██████╔╝
██║ ██║██╔══██╗██╔══██║██╔═══╝ ██╔══██║██║ ██╔══██╗██╔══██║██║███╗██║██║ ██╔══╝ ██╔══██╗
╚██████╔╝██║ ██║██║ ██║██║ ██║ ██║╚██████╗██║ ██║██║ ██║╚███╔███╔╝███████╗███████╗██║ ██║
╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚══╝╚══╝ ╚══════╝╚══════╝╚═╝ ╚═╝
L'opzione di output non è richiesta e di default verrà salvato in schema.json 2. Come Docker Nota: Poiché graphcrawler utilizza alcune opzioni che richiedono file come input o producono output, è consigliabile tenere tutti quei file in una directory di lavoro e montarla nel container al percorso /workspace. Tutti i tuoi output verranno salvati in quella directory montata
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>"
Wordlist da google-10000-english