Retour à la leçonMission
Mission : le jeton admin forgé avec la clé publique
Comprendre une attaque de confusion d'algorithme sur JWT et corriger la vérification pour qu'elle résiste à un jeton forgé.
Contexte
L'API de Technologik vérifie ses JWT signés en RS256 avec ce code :
python
payload = jwt.decode(token, key=public_or_secret_key, algorithms=jwt.get_unverified_header(token)["alg"])La clé publique RSA utilisée pour vérifier la signature est distribuée librement sur un endpoint /.well-known/jwks.json, comme c'est l'usage normal pour RS256. Un chercheur en sécurité signale pouvoir se connecter en tant qu'administrateur sans connaître aucun mot de passe.