
InQL ist eine robuste, quelloffene Burp-Suite-Erweiterung für erweiterte GraphQL-Tests, die intuitive Schwachstellenerkennung, anpassbare Scans und nahtlose Burp-Integration bietet.
Willkommen bei InQL, einem Open-Source-GraphQL-Testtool. Dieses Tool bietet Funktionen, die Ihr GraphQL-Testerlebnis verbessern und effizienter sowie effektiver gestalten sollen.
Wir schätzen Ihr Vertrauen in InQL. Viel Spaß beim Testen!
Die Benutzeroberfläche von InQL umfasst drei Hauptkomponenten: den Scanner, die Batch Queries und den Engine Fingerprinting-Tab.

Der Scanner ist das Kernstück von InQL, mit dem Sie einen GraphQL-Endpunkt oder eine lokale Introspection-Schemadatei analysieren können. Er generiert automatisch alle möglichen Queries, Mutations und Subscriptions und organisiert sie in einer strukturierten Ansicht für Ihre Analyse.
✅ Anpassbare Scans
InQL bietet die Flexibilität, Ihre Scans anzupassen. Passen Sie die Tiefe der generierten Queries oder die Anzahl der Leerzeichen für die Einrückung an. Sie können auch 'Points of Interest'-Scans durchführen, um potenzielle Schwachstellen im GraphQL-Schema zu erkennen.
✅ Points of Interest Analysis
Nach der Durchführung eines Points of Interest-Scans wird ein umfangreicher Datensatz zu verschiedenen potenziellen Schwachstellen angezeigt. Sie können diese Kategorien nach Bedarf aktivieren oder deaktivieren.
✅ Erkennung zirkulärer Referenzen
InQL implementiert die Erkennung zirkulärer Referenzen. Nach der Analyse des Schemas werden potenziell anfällige Queries in der Scanner-Ergebnisansicht angezeigt.
✅ Verbesserte Interaktionen mit Burp
InQL lässt sich nahtlos in Burp integrieren und ermöglicht es Ihnen, Queries direkt aus jeder GraphQL-Anfrage in Burp zu generieren. Sie können auch automatisch generierte Queries an andere Burp-Tools zur weiteren Analyse senden.
✅ Benutzerdefinierte Header
Sie können benutzerdefinierte Header pro Domain festlegen, wobei die Domainliste automatisch aus dem beobachteten Traffic befüllt wird.
Der Batch Queries-Tab ermöglicht es Ihnen, Batch-GraphQL-Angriffe durchzuführen, was nützlich sein kann, um schlecht implementierte Ratenbegrenzungen zu umgehen.
Die nativen Nachrichten-Editoren von Burp verfügen jetzt über einen zusätzlichen 'GraphQL (InQL)'-Tab, der eine effiziente Möglichkeit bietet, GraphQL-Anfragen anzuzeigen und zu bearbeiten. Er unterstützt auch Schema-Highlighting für eine bessere Lesbarkeit.
InQL implementiert jetzt GraphiQL- und GraphQL Voyager-Server. Sie können das analysierte Schema an diese senden, um die Analyse noch weiter zu vertiefen!
Dieser Tab ermöglicht es Ihnen, eine GraphQL-URL zu scannen, um Informationen über die Backend-Server-Technologie zu erhalten.
Dieser Scanner wurde entwickelt, um das Schema neu zu erstellen, wenn Introspection deaktiviert ist. Er basiert auf dem Clairvoyance CLI-Tool und verwendet Regex-Mustererkennung, um Schema-Details zu ermitteln.
Für eine erfolgreiche Installation von InQL müssen die folgenden Voraussetzungen erfüllt sein:
Burp:
Java:
$ sudo apt install -y openjdk-17-jdk
$ java --version
openjdk 17.0.6 2023-01-17
$ # Mac OS & Homebrew:
$ brew install go-task
$ # Debian
$ sudo apt install -y task
$ git clone https://github.com/doyensec/inql
$ cd inql
$ # Optional: Checkout des dev-Branches (kann fehlerhaft/instabil sein!)
$ git checkout dev
$ task all
Dies sollte eine Datei namens InQL.jar oder ähnlich im Stammverzeichnis des Repositorys erzeugen. Laden Sie diese als Java-Erweiterung in Burp.
Entwicklungsumgebung
Wenn Sie zum Projekt beitragen möchten, ist keine spezielle Umgebung erforderlich. Sie können das Projekt einfach jedes Mal neu erstellen, wenn Sie eine Änderung vornehmen.
Um die Arbeit am Code zu beschleunigen, können Sie die Erweiterung bei jeder Änderung automatisch neu erstellen lassen. Führen Sie dazu einfach die kotlin-Aufgabe mit dem Flag --watch / -w aus:
$ task kotlin -w
InQL lebt von den Beiträgen der Community. Ob Entwickler, Forscher, Designer oder Bug Hunter – Ihre Expertise ist für uns unbezahlbar. Wir freuen uns über Fehlermeldungen, Feedback und Pull-Requests. Ihre Teilnahme hilft uns, InQL kontinuierlich zu verbessern und zu einem noch stärkeren Tool für die Community zu machen.
Interaktionen erfolgen am besten über den Github Issue Tracker, Sie können uns aber auch über die sozialen Medien erreichen (@Doyensec). Wir freuen uns auf Ihre Nachrichten!
Ein besonderer Dank gilt unseren Mitwirkenden. Ihre Hingabe und Ihr Engagement waren maßgeblich für den heutigen Stand von InQL.
Aktuell:
Historisch:
Dieses Projekt wurde mit Unterstützung von Doyensec erstellt.