
JWT Key Confusion PoC (CVE-2015-9235) Écrit pour le défi Hack the Box - En construction
Écrit pour les défis Hack the Box - Under Construction et Secret
Les deux scripts inclus effectuent une attaque par confusion de clés de jeton Web Java (CVE-2015-9235).
Pour effectuer l'attaque, l'attaquant doit connaître la clé publique que le serveur utilisera pour vérifier la signature, et le serveur doit être configuré pour utiliser l'algorithme HS256. Comme HS256 est un algorithme à clé symétrique (la même clé est utilisée pour signer et vérifier le message), nous pouvons utiliser la clé publique pour signer notre jeton falsifié. Étant donné que le serveur web connaît la clé publique, lorsqu'il reçoit le jeton falsifié, il pourra le vérifier.

python3 jwt-9235.py [-h] [token_location] [claim_key] [claim_value]
positional arguments:
token_location location of JWT token (must include 'pk' payload)
claim_key payload claim to target
claim_value new claim value
optional arguments:
-h, --help show this help message and exit
Si aucun argument n'est fourni, l'application recherchera un fichier de jeton ./token, ciblera la revendication username et remplacera la valeur de la revendication par ‘ or 1=1;–
pip install hashlib hmac base64 json argparse colorama