Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
graphw00f — GraphQL-Server-Engine-Fingerprinting-Tool, das wohlgeformte und fehlerhafte Abfragen sendet, um die Backend-Technologie zu identifizieren und Sicherheitsmaßnahmen anhand der GraphQL Threat Matrix zu bewerten. | Kitploit
Tools/GitHubGitHub/dolevf/graphw00f
AufklärungAPI-SicherheitstestsInformationsbeschaffungWebsicherheit
GitHubdolevf/graphw00f

graphw00f

GraphQL-Server-Engine-Fingerprinting-Tool, das wohlgeformte und fehlerhafte Abfragen sendet, um die Backend-Technologie zu identifizieren und Sicherheitsmaßnahmen anhand der GraphQL Threat Matrix zu bewerten.

Repository anzeigen
88498vor 3 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

graphw00f

Dank an Nick Aleks für das Logo!

graphw00f – GraphQL-Server-Fingerprinting

Inhaltsverzeichnis

  • Wie funktioniert es?
  • Erkennungen
  • GraphQL Threat Matrix
  • Voraussetzungen
  • Installation
  • Konfiguration
  • Beispielnutzung
    • Fingerprinting von GraphQL
    • Erkennung und Fingerprinting von GraphQL
  • Support und Probleme
  • Ressourcen

Wie funktioniert es?

graphw00f (inspiriert von wafw00f) ist das GraphQL-Fingerprinting-Tool für GQL-Endpoints. Es sendet eine Mischung aus harmlosen und fehlerhaften Abfragen, um die dahinterliegende GraphQL-Engine zu bestimmen. graphw00f nutzt das GraphQL Threat Matrix-Projekt, um Einblicke zu geben, welche Sicherheitsabwehr jede Technologie standardmäßig bietet und ob diese standardmäßig aktiviert oder deaktiviert sind.

Speziell erstellte Abfragen führen dazu, dass verschiedene GraphQL-Server-Implementierungen unterschiedlich auf Abfragen, Mutationen und Subscriptions reagieren. Dies macht es trivial, die Backend-Engine zu identifizieren und zwischen den verschiedenen GraphQL-Implementierungen zu unterscheiden. (CWE: CWE-200)

graphw00f unterstützt die Erkennung und das Fingerprinting von GraphQL-Servern, die entweder GET- oder POST-basierte Abfragen verwenden.

Erkennungen

graphw00f versucht derzeit, die folgenden GraphQL-Engines zu erkennen:

  • Graphene - Python
  • Ariadne - Python
  • Apollo - TypeScript
  • graphql-go - Go
  • gqlgen - Go
  • WPGraphQL - PHP
  • GraphQL API for Wordpress - PHP
  • Gato GraphQL - PHP
  • graphql-ruby - Ruby
  • graphql-php - PHP
  • Hasura - Haskell
  • HyperGraphQL - Java
  • graphql-java - Java
  • Juniper - Rust
  • Sangria - Scala
  • Flutter - Dart
  • Diana.jl - Julia
  • Strawberry - Python
  • Tartiflette - Python
  • Dgraph - JavaScript
  • Directus - TypeScript
  • AWS AppSync
  • GraphQL Yoga - TypeScript
  • Lighthouse - PHP
  • Agoo - Ruby
  • Mercurius - JavaScript
  • morpheus-graphql - Haskell
  • Lacinia - Clojure
  • Caliban - Scala
  • jaal - Golang
  • absinthe-graphql - Elixir
  • GraphQL.NET - Microsoft .NET
  • pg_graphql - Rust
  • tailcall - Rust
  • Hot Chocolate - Microsoft .NET
  • Inigo - Go
  • ballerina-graphql - Ballerina

GraphQL Threat Matrix

Das graphw00f-Projekt verwendet das GraphQL Threat Matrix Project als seine Technologiesicherheits-Matrix-Datenbank. Wenn graphw00f erfolgreich einen GraphQL-Endpoint identifiziert, wird das Threat-Matrix-Dokument ausgegeben. Dieses Dokument hilft Sicherheitsingenieuren dabei, den Reifegrad der Technologie, die angebotenen Sicherheitsfunktionen und das Vorhandensein von CVEs zu identifizieren.

GraphQL Threat Matrix

Voraussetzungen

  • python3
  • requests

Installation

Repository klonen

git clone https://github.com/dolevf/graphw00f.git

graphw00f ausführen

root@kitploit:~
Usage: main.py -d -f -t http://example.com

Options:
  -h, --help            show this help message and exit
  -r, --noredirect      Do not follow redirections given by 3xx responses
  -t URL, --target=URL  target url with the path
  -f, --fingerprint     fingerprint mode
  -d, --detect          detect mode
  -p PROXY, --proxy=PROXY
                        HTTP(S) proxy URL in the form
                        http://user:pass@host:port
  -T TIMEOUT, --timeout=TIMEOUT
                        Request timeout in seconds
  -o OUTPUT_FILE, --output-file=OUTPUT_FILE
                        Output results to a file (CSV)
  -l, --list            List all GraphQL technologies graphw00f is able to
                        detect
  -u USERAGENT, --user-agent=USERAGENT
                        Custom user-agent to use (overrides the one from
                        headers configuration)
  -H HEADER, --header=HEADER
                        Custom headers to send (e.g. "Authorization: Bearer
                        ey...").
  -w WORDLIST, --wordlist=WORDLIST
                        Path to a list of custom GraphQL endpoints
  -v, --version         Print out the current version and exit.

Konfiguration

Für graphw00f sind nicht viele Konfigurationen erforderlich. Wenn Sie jedoch z. B. Authorization-Header oder Cookies für einen bestimmten Endpoint setzen müssen, verwenden Sie die Datei conf.py.

root@kitploit:~
# Custom Headers
HEADERS = {'User-Agent':'graphw00f'}

# Custom Cookies
COOKIES = {"PHPSESS":"DEADBEEF"}

Die Verwendung von --user-agent fügt den Schlüssel User-Agent hinzu, unabhängig davon, ob die Datei conf.py ihn enthält. Wenn die Datei bereits einen enthält, überschreibt der Befehlszeilenparameter diesen.

Beispiel

Fingerprinting von GraphQL

Dies ist ein Beispiel, wie man einen Endpoint identifiziert (-f), dessen GraphQL-Pfad bereits bekannt ist (/graphql).

root@kitploit:~
python3 main.py -f -t https://demo.hypergraphql.org:8484/graphql

                +-------------------+
                |     graphw00f     |
                +-------------------+
                  ***            ***
                **                  ***
              **                       **
    +--------------+              +--------------+
    |    Node X    |              |    Node Y    |
    +--------------+              +--------------+
                  ***            ***
                     **        **
                       **    **
                    +------------+
                    |   Node Z   |
                    +------------+

                graphw00f - v1.0.7
          The fingerprinting tool for GraphQL
           Dolev Farhi <[email protected]>

[*] Checking if GraphQL is available at https://demo.hypergraphql.org:8484/graphql...
[*] Found GraphQL...
[*] Attempting to fingerprint...
[*] Discovered GraphQL Engine: (HyperGraphQL)
[!] Attack Surface Matrix: https://github.com/dolevf/graphw00f/blob/main/docs/hypergraphql.md
[!] Technologies: Java
[!] Homepage: https://www.hypergraphql.org
[*] Completed.

Erkennung und Fingerprinting von GraphQL

Dies ist ein Beispiel, wie graphw00f erkennen kann (-d), wo sich GraphQL befindet, und dann den Fingerprinting-Prozess ausführt (-f).

root@kitploit:~
python3 main.py -f -d -t http://localhost:5000

                +-------------------+
                |     graphw00f     |
                +-------------------+
                  ***            ***
                **                  ***
              **                       **
    +--------------+              +--------------+
    |    Node X    |              |    Node Y    |
    +--------------+              +--------------+
                  ***            ***
                     **        **
                       **    **
                    +------------+
                    |   Node Z   |
                    +------------+

                graphw00f - v1.1.2
          The fingerprinting tool for GraphQL
           Dolev Farhi <[email protected]>

[*] Checking http://dvga.example.local:5000/graphql
[!] Found GraphQL at http://dvga.example.local:5000/graphql
[*] Attempting to fingerprint...
[*] Discovered GraphQL Engine: (Graphene)
[!] Attack Surface Matrix: https://github.com/nicholasaleks/graphql-threat-matrix/blob/master/implementations/graphene.md
[!] Technologies: Python
[!] Homepage: https://graphene-python.org
[*] Completed.

Support und Probleme

Bei Problemen mit graphw00f, wie z. B. Fehlalarmen, ungenauen Erkennungen, Bugs usw., erstellen Sie bitte ein GitHub-Issue mit den Umgebungsdetails.

Ressourcen

Möchten Sie mehr über GraphQL erfahren? Besuchen Sie mein anderes Projekt und hacken Sie GraphQL: Damn Vulnerable GraphQL Application

Tool herunterladen