
GraphQL automatisiertes Sicherheitstest-Toolkit
Graph Crawler ist das leistungsstärkste automatisierte Test-Toolkit für jeden GraphQL-Endpunkt.
NEU: Kann mit dem leistungsstarken Graphinder Tool von Escape Technology Endpunkte für Sie suchen. Weisen Sie es einfach auf eine Domain und fügen Sie die Option '-e' hinzu, und Graphinder führt eine Subdomain-Enumeration durch und durchsucht gängige Verzeichnisse nach GraphQL-Endpunkten. Danach übernimmt GraphCrawler und arbeitet jeden Fund ab. Wenn das Schema nicht introspiziert werden kann, können Sie es als JSON-Datei mit der Option '-s' bereitstellen.
Es wird durchlaufen und prüfen, ob Mutation aktiviert ist, nach sensiblen Abfragen wie Benutzer und Dateien suchen und auch alle einfachen Abfragen testen, die es findet, um zu sehen, ob eine Authentifizierung erforderlich ist.
Wenn die Introspection am Endpunkt nicht aktiviert ist, wird geprüft, ob es sich um einen Apollo Server handelt, und dann kann Clairvoyance ausgeführt werden, um die Vorschläge zu brute-forcen und zu erfassen, um selbst das Schema zu erstellen. (Weitere Details finden Sie im Clairvoyance-Projekt).
Anschließend werden die Funde mit 1-10 bewertet, wobei 10 die kritischste ist.
Wenn Sie tiefer in das Schema eintauchen möchten, können Sie auch graphql-path-enum verwenden, um nach Pfaden zu bestimmten Typen wie Benutzer-IDs, E-Mails usw. zu suchen.
Ich hoffe, das spart Ihnen genauso viel Zeit wie mir.
python graphCrawler.py -u https://test.com/graphql/api -o <fileName> -a "<headers>"
██████╗ ██████╗ █████╗ ██████╗ ██╗ ██╗ ██████╗██████╗ █████╗ ██╗ ██╗██╗ ███████╗██████╗
██╔════╝ ██╔══██╗██╔══██╗██╔══██╗██║ ██║██╔════╝██╔══██╗██╔══██╗██║ ██║██║ ██╔════╝██╔══██╗
██║ ███╗██████╔╝███████║██████╔╝███████║██║ ██████╔╝███████║██║ █╗ ██║██║ █████╗ ██████╔╝
██║ ██║██╔══██╗██╔══██║██╔═══╝ ██╔══██║██║ ██╔══██╗██╔══██║██║███╗██║██║ ██╔══╝ ██╔══██╗
╚██████╔╝██║ ██║██║ ██║██║ ██║ ██║╚██████╗██║ ██║██║ ██║╚███╔███╔╝███████╗███████╗██║ ██║
╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚══╝╚══╝ ╚══════╝╚══════╝╚═╝ ╚═╝
Die Option für die Ausgabe ist nicht erforderlich und standardmäßig wird in schema.json ausgegeben. 2. Als Docker Hinweis: Da graphcrawler einige Optionen verwendet, die Dateien als Eingabe benötigen oder Ausgaben erzeugen, wird empfohlen, alle diese Dateien in einem Arbeitsverzeichnis zu behalten und es im Container unter /workspace einzuhängen. Ihre gesamte Ausgabe wird in diesem eingehängten Verzeichnis gespeichert.
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>"
Wortliste von google-10000-english