Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
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
jwt_tool — :snake: Ein Toolkit zum Testen, Anpassen und Knacken von JSON Web Tokens | Kitploit
Tools/GitHubGitHub/ticarpi/jwt_tool
SchwachstellenscannerAPI-SicherheitstestsWebsicherheitFuzzingKryptographieCTFPenetrationstestsAPI-SicherheitTop in API-Sicherheit Nr.8Top in API-Sicherheitstests Nr.8
6.7k812111vor 1 JahrVon Kitploit geprüft
GitHubticarpi/jwt_tool

jwt_tool

🐍 Ein Toolkit zum Testen, Anpassen und Knacken von JSON Web Tokens

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Das JSON Web Token Toolkit v2

jwt_tool.py ist ein Toolkit zum Validieren, Fälschen, Scannen und Manipulieren von JWTs (JSON Web Tokens).

jwt_tool version python version

logo

Die Funktionalität umfasst:

  • Überprüfung der Gültigkeit eines Tokens
  • Testen auf bekannte Exploits:
    • (CVE-2015-2951) Die alg=none Signatur-Bypass-Schwachstelle
    • (CVE-2016-10555) Die RS/HS256 Public-Key-Mismatch-Schwachstelle
    • (CVE-2018-0114) Key-Injection-Schwachstelle
    • (CVE-2019-20933/CVE-2020-28637) Blank-Password-Schwachstelle
    • (CVE-2020-28042) Null-Signatur-Schwachstelle
    • (CVE-2022-21449) Psychic Signature ECDSA-Schwachstelle
  • Scannen nach Fehlkonfigurationen oder bekannten Schwachstellen
  • Fuzzing von Claim-Werten, um unerwartetes Verhalten auszulösen
  • Testen der Gültigkeit eines Secrets/Key-Datei/Public Key/JWKS-Key
  • Identifizieren schwacher Schlüssel mittels eines Hochgeschwindigkeits-Wörterbuchangriffs
  • Fälschen neuer Token-Header- und Payload-Inhalte und Erzeugen einer neuen Signatur mit dem Schlüssel oder über eine andere Angriffsmethode
  • Zeitstempel-Manipulation
  • Generierung von RSA- und ECDSA-Schlüsseln sowie Rekonstruktion (aus JWKS-Dateien)
  • Ratenbegrenzung für alle Angriffe
  • ...und vieles mehr!

Zielgruppe

Dieses Tool wurde für Pentester geschrieben, die die Stärke der verwendeten Token und deren Anfälligkeit für bekannte Angriffe prüfen müssen. Eine Reihe von Manipulations-, Signier- und Verifizierungsoptionen steht zur Verfügung, um tiefer in die potenziellen Schwachstellen einzutauchen, die in einigen JWT-Bibliotheken vorhanden sind.
Es hat sich auch für CTF-Teilnehmer als nützlich erwiesen – da CTFs derzeit offenbar sehr auf JWTs stehen.
Es kann auch für Entwickler nützlich sein, die JWTs in Projekten verwenden, aber die Stabilität und bekannte Schwachstellen beim Einsatz gefälschter Token testen möchten.


Anforderungen

Dieses Tool ist nativ in Python 3 (Version 3.6+) geschrieben und verwendet die gängigen Bibliotheken. Verschiedene kryptografische Funktionen (und die allgemeine Optik/Lesbarkeit) erfordern jedoch die Installation einiger gängiger Python-Bibliotheken.
(Eine ältere Python-2.x-Version dieses Tools ist für diejenigen, die sie benötigen, im Legacy-Zweig verfügbar, wird jedoch nicht mehr unterstützt oder aktualisiert)


Installation

Docker

Die bevorzugte Verwendung für jwt_tool ist mit dem offiziellen, auf Dockerhub gehosteten jwt_tool-Docker-Image
Der Basisbefehl für die Ausführung lautet wie folgt:
Basisbefehl zum Ausführen von jwt_tool:
docker run -it --network "host" --rm -v "${PWD}:/tmp" -v "${HOME}/.jwt_tool:/root/.jwt_tool" ticarpi/jwt_tool

Mit dem obigen Befehl kannst du wie gewohnt beliebige weitere Argumente anhängen.
Beachte, dass lokale Dateien in deinem aktuellen Arbeitsverzeichnis in das /tmp-Verzeichnis des Docker-Containers gemappt werden. Du kannst sie also über diesen absoluten Pfad in deinen Argumenten verwenden.
z. B.
/tmp/localfile.txt

Manuelle Installation

Die Installation besteht lediglich darin, die Datei jwt_tool.py herunterzuladen (oder das Repo zu git clone).
(Führe auch chmod auf der Datei aus, wenn du sie zu deinem $PATH hinzufügen und von überall aufrufen möchtest.)

$ git clone https://github.com/ticarpi/jwt_tool
$ python3 -m pip install -r requirements.txt

Beim ersten Start erzeugt das Tool eine Konfigurationsdatei, einige Hilfsdateien, eine Logdatei und einen Satz öffentlicher und privater Schlüssel in verschiedenen Formaten.

Benutzerdefinierte Konfigurationen

  • Für die optimale Nutzung der Scan-Optionen wird dringend empfohlen, die benutzerdefinierte JWKS-Datei an einen Ort zu kopieren, der über eine URL remote erreichbar ist. Diese Adresse sollte dann in jwtconf.ini als Wert "jwkloc" gespeichert werden.
  • Um Interaktionen mit externen Diensten – wie DNS-Lookups und HTTP-Anfragen – zu erfassen, trage deine eindeutige Adresse für Burp Collaborator (oder andere alternative Tools wie RequestBin) als Wert "httplistener" in die Konfigurationsdatei ein.
    Überprüfe die weiteren Optionen in der Konfigurationsdatei, um deine Erfahrung anzupassen.

Farbfehler unter Windows

Um defekte Farben in Windows cmd/Powershell zu beheben, entferne die Kommentierung der folgenden zwei Zeilen in jwt_tool.py (entferne das "# " am Anfang jeder Zeile).
Du musst außerdem colorama installieren: python3 -m pip install colorama

# import colorama
# colorama.init()

Verwendung

Das erste Argument sollte das JWT selbst sein (sofern es nicht in einem Header- oder Cookie-Wert bereitgestellt wird). Wenn keine weiteren Argumente angegeben werden, werden die dekodierten Token-Werte zur Überprüfung angezeigt.
$ python3 jwt_tool.py <JWT>
oder der Docker-Basisbefehl:
$ docker run -it --network "host" --rm -v "${PWD}:/tmp" -v "${HOME}/.jwt_tool:/root/.jwt_tool" ticarpi/jwt_tool

Das Toolkit validiert das Token und listet die Header- und Payload-Werte auf.

Zusätzliche Argumente

Die vielen zusätzlichen Argumente führen dich direkt zur entsprechenden Funktion und liefern dir ein Token, das du in deinen Tests verwenden kannst.
Um zum Beispiel das vorhandene Token zu manipulieren, führe Folgendes aus:
$ python3 jwt_tool.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.aqNCvShlNT9jBFTPBpHDbt2gBB1MyHiisSDdp8SQvgw -T

Viele Optionen benötigen zusätzliche Werte, um Optionen zu setzen.
Um beispielsweise einen bestimmten Exploit-Typ auszuführen, musst du die Option eXploit (-X) wählen und die Schwachstelle auswählen (hier wird "a" für den alg:none-Exploit verwendet):
$ python3 jwt_tool.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.aqNCvShlNT9jBFTPBpHDbt2gBB1MyHiisSDdp8SQvgw -X a

Zusätzliche Parameter

Einige Optionen wie das Verifizieren von Token erfordern zusätzliche Parameter/Dateien (hier wird der öffentliche Schlüssel im PEM-Format bereitgestellt):
$ python3 jwt_tool.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.aqNCvShlNT9jBFTPBpHDbt2gBB1MyHiisSDdp8SQvgw -V -pk public.pem

Senden von Token an eine Webanwendung

Alle Modi erlauben es nun, das Token direkt an eine Anwendung zu senden.
Du musst Folgendes angeben:

  • Ziel-URL (-t)
  • Anstelle einer Ziel-URL kannst du deine HTTP-Anfrage in eine Datei legen und mit -r auf die Datei verweisen. Dies füllt automatisch Header, Cookies und POST-Daten aus, daher ist dies die empfohlene Option.
  • Einen Request-Header (-rh) oder Request-Cookies (-rc), die von der Anwendung benötigt werden (mindestens einer muss das Token enthalten)
  • (optional) beliebige POST-Daten (wenn die Anfrage ein POST ist)
  • (optional) beliebige weitere jwt_tool-Optionen, wie Modi oder Manipulations-/Injektionsoptionen
  • (optional) einen Canary-Wert (-cv) – einen Textwert, den du bei einer erfolgreichen Verwendung des Tokens zu sehen erwartest (z. B. "Welcome, ticarpi")
    Eine Beispielanfrage könnte so aussehen (im Scan-Modus für erzwungene Fehler):
    $ python3 jwt_tool.py -t https://www.ticarpi.com/ -rc "jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.bsSwqj2c2uI9n7-ajmi3ixVGhPUiY7jO9SUn9dm15Po;anothercookie=test" -rh "Origin: null" -cv "Welcome" -M er

Verschiedene Antworten auf die Anfrage werden angezeigt:

  • Antwortcode
  • Antwortgröße
  • Eindeutige Anfrage-Tracking-ID (zur Verwendung mit Protokollierung)
  • Verwendete Modi/Optionen

Typischer Arbeitsablauf

Tool herunterladen