
JWT Key Confusion PoC (CVE-2015-9235) Scritto per la sfida Hack the Box - In costruzione
Scritto per le sfide Hack The Box - Under Construction e Secret
Entrambi gli script inclusi eseguono un attacco di Key Confusion sui Java Web Token (CVE-2015-9235).
Per eseguire l'attacco è necessario che l'attaccante conosca la chiave pubblica che il server utilizzerà per verificare la firma, e che il server sia configurato per utilizzare l'algoritmo HS256. Poiché HS256 è un algoritmo a chiave simmetrica (la stessa chiave viene utilizzata per firmare e verificare il messaggio), possiamo usare la chiave pubblica per firmare il nostro token manomesso. Poiché il server web conosce la chiave pubblica, quando riceve il token manomesso sarà in grado di verificarlo.

python3 jwt-9235.py [-h] [token_location] [claim_key] [claim_value]
positional arguments:
token_location posizione del token JWT (deve includere il payload 'pk')
claim_key claim del payload da bersagliare
claim_value nuovo valore del claim
optional arguments:
-h, --help mostra questo messaggio di aiuto ed esci
Se non vengono forniti argomenti, l'applicazione cercherà un file token ./token, bersaglierà il claim username e sostituirà il valore del claim con ‘ or 1=1;–
pip install hashlib hmac base64 json argparse colorama