Retour à la leçon
Mission

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.