Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
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
jwt_tool — :snake: Un toolkit per testare, modificare e decifrare JSON Web Tokens | Kitploit
Strumenti/GitHubGitHub/ticarpi/jwt_tool
Scanner di VulnerabilitàTest di Sicurezza delle APISicurezza WebFuzzingCrittografiaCTFPenetration TestingSicurezza delle APITop in Sicurezza delle API n.8Top in Test di Sicurezza delle API n.8
6.7k8121111 anno 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 →
GitHubticarpi/jwt_tool

jwt_tool

🐍 Un toolkit per testare, modificare e decifrare JSON Web Tokens

Vedi Repository
Condividi

The JSON Web Token Toolkit v2

jwt_tool.py è un toolkit per validare, forgiare, scansionare e manomettere JWT (JSON Web Tokens).

jwt_tool version python version

logo

Le sue funzionalità includono:

  • Verifica della validità di un token
  • Test per exploit noti:
    • (CVE-2015-2951) La vulnerabilità di bypass della firma alg=none
    • (CVE-2016-10555) La vulnerabilità di discrepanza della chiave pubblica RS/HS256
    • (CVE-2018-0114) La vulnerabilità di key injection (iniezione di chiave)
    • (CVE-2019-20933/CVE-2020-28637) La vulnerabilità della password vuota
    • (CVE-2020-28042) La vulnerabilità della firma nulla
    • (CVE-2022-21449) La vulnerabilità ECDSA Psychic Signature
  • Scansione per errori di configurazione o debolezze note
  • Fuzzing dei valori dei claim per provocare comportamenti inattesi
  • Verifica della validità di un segreto/file di chiave/chiave pubblica/chiave JWKS
  • Identificazione di chiavi deboli tramite un attacco a dizionario ad alta velocità
  • Forgiatura di nuovi contenuti per header e payload del token e creazione di una nuova firma con la chiave o tramite un altro metodo di attacco
  • Manomissione dei timestamp
  • Generazione di chiavi RSA ed ECDSA e ricostruzione (da file JWKS)
  • Rate-limiting per tutti gli attacchi
  • ...e molto altro!

Audience

Questo strumento è scritto per pentester, che devono verificare la robustezza dei token in uso e la loro suscettibilità agli attacchi noti. Sono disponibili diverse opzioni di manomissione, firma e verifica per approfondire le potenziali debolezze presenti in alcune librerie JWT.
È stato inoltre utile per i partecipanti a CTF — visto che i CTF sembrano molto interessati ai JWT al momento.
Può essere utile anche per gli sviluppatori che usano JWT nei propri progetti e vogliono testarne la stabilità e le vulnerabilità note quando si utilizzano token forgiati.


Requirements

Questo strumento è scritto nativamente in Python 3 (versione 3.6+) usando le librerie comuni; tuttavia varie funzioni crittografiche (e la resa grafica/leggibilità generale) richiedono l'installazione di alcune librerie Python comuni.
(Una versione precedente basata su Python 2.x di questo strumento è disponibile sul branch legacy per chi ne avesse bisogno, anche se non è più supportata o aggiornata)


Installation

Docker

L'uso preferito di jwt_tool è tramite l'immagine Docker ufficiale di jwt_tool ospitata su Dockerhub
Il comando base per eseguirlo è il seguente:
Comando base per eseguire jwt_tool:
docker run -it --network "host" --rm -v "${PWD}:/tmp" -v "${HOME}/.jwt_tool:/root/.jwt_tool" ticarpi/jwt_tool

Usando il comando sopra puoi aggiungere qualsiasi altro argomento come al solito.
Nota che i file locali nella tua directory di lavoro corrente verranno mappati nella directory /tmp del container Docker, quindi puoi usarli impiegando quel percorso assoluto nei tuoi argomenti.
Es.
/tmp/localfile.txt

Manual Install

L'installazione consiste semplicemente nel scaricare il file jwt_tool.py (oppure fare git clone del repository).
(Eseguire anche chmod sul file se si vuole aggiungerlo al proprio $PATH e richiamarlo da qualsiasi posizione.)

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

Al primo avvio lo strumento genererà un file di configurazione, alcuni file di utilità, un file di log e un set di chiavi pubbliche e private in vari formati.

Custom Configs

  • Per sfruttare al meglio le opzioni di scansione è fortemente consigliato copiare il file JWKS generato su misura in una posizione accessibile da remoto tramite URL. Questo indirizzo va poi salvato in jwtconf.ini come valore "jwkloc".
  • Per intercettare le interazioni con servizi esterni, come lookup DNS e richieste HTTP, inserisci il tuo indirizzo univoco per Burp Collaborator (o altri strumenti alternativi come RequestBin) nel file di configurazione come valore "httplistener".
    Controlla le altre opzioni nel file di configurazione per personalizzare la tua esperienza.

Colour bug in Windows

Per risolvere i colori non funzionanti in Windows cmd/Powershell: decommenta le due righe seguenti in jwt_tool.py (rimuovi il "# " all'inizio di ogni riga)
Dovrai anche installare colorama: python3 -m pip install colorama

# import colorama
# colorama.init()

Usage

Il primo argomento deve essere il JWT stesso (a meno che non venga fornito in un header o in un cookie). Se non si forniscono argomenti aggiuntivi, verranno mostrati i valori decodificati del token per la revisione.
$ python3 jwt_tool.py <JWT>
oppure il comando base Docker:
$ docker run -it --network "host" --rm -v "${PWD}:/tmp" -v "${HOME}/.jwt_tool:/root/.jwt_tool" ticarpi/jwt_tool

Il toolkit validerà il token e mostrerà i valori di header e payload.

Additional arguments

I numerosi argomenti aggiuntivi ti portano direttamente alla funzione appropriata e ti restituiscono un token pronto per l'uso nei tuoi test.
Ad esempio, per manomettere il token esistente esegui il seguente comando:
$ python3 jwt_tool.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.aqNCvShlNT9jBFTPBpHDbt2gBB1MyHiisSDdp8SQvgw -T

Molte opzioni richiedono valori aggiuntivi per impostare le opzioni.
Ad esempio, per eseguire un particolare tipo di exploit devi scegliere l'opzione eXploit (-X) e selezionare la vulnerabilità (qui usando "a" per l'exploit alg:none):
$ python3 jwt_tool.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.aqNCvShlNT9jBFTPBpHDbt2gBB1MyHiisSDdp8SQvgw -X a

Extra parameters

Alcune opzioni, come la verifica dei token, richiedono parametri/file aggiuntivi (qui fornendo la chiave pubblica in formato PEM):
$ python3 jwt_tool.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.aqNCvShlNT9jBFTPBpHDbt2gBB1MyHiisSDdp8SQvgw -V -pk public.pem

Sending tokens to a web application

Tutte le modalità ora consentono di inviare il token direttamente a un'applicazione.
È necessario specificare:

  • URL di destinazione (-t)
  • al posto di un URL di destinazione, puoi inserire la tua richiesta HTTP in un file e fare riferimento al file con -r. Questo popola AUTOMATICAMENTE header, cookie e dati POST, quindi è l'opzione consigliata
  • un header di richiesta (-rh) o cookie di richiesta (-rc) necessari all'applicazione (almeno uno deve contenere il token)
  • (opzionale) eventuali dati POST (quando la richiesta è una POST)
  • (opzionale) eventuali opzioni aggiuntive di jwt_tool, come modalità o opzioni di manomissione/iniezione
  • (opzionale) un canary value (-cv) - un valore testuale che ti aspetti di vedere in un uso riuscito del token (es. "Welcome, ticarpi")
    Una richiesta di esempio potrebbe essere questa (usando la modalità di scansione per errori forzati):
    $ python3 jwt_tool.py -t https://www.ticarpi.com/ -rc "jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.bsSwqj2c2uI9n7-ajmi3ixVGhPUiY7jO9SUn9dm15Po;anothercookie=test" -rh "Origin: null" -cv "Welcome" -M er

Vengono visualizzate varie risposte dalla richiesta:

  • Codice di risposta
  • Dimensione della risposta
  • ID di tracciamento univoco della richiesta (per l'uso con il logging)
  • Modalità/opzioni usate

Common Workflow

Ecco una rapida panoramica di una valutazione di base di un'implementazione JWT. Se con queste opzioni non si ottengono risultati, approfondisci con altre modalità e opzioni per cercare nuove vulnerabilità (o zero-day!).

Scarica lo strumento