Icône du lab

JWT Algo Confusion

Défi Mis à jour le 22 juin 2026 Solution (Pro)
JWT Algorithm Confusion RS256 HS256 Token Forgery Web Security

Démarrez la machine, hackez le système et trouvez les flags cachés pour compléter ce défi et gagner des XP!

1
Flags
50
XP
54%
Taux de Réussite

La confusion d'algorithme JSON Web Token (JWT) est une classe de vulnérabilité critique qui exploite la manière dont les applications gèrent la vérification de signature JWT. Lorsqu'un serveur est configuré pour accepter plusieurs algorithmes de signature sans validation appropriée, les attaquants peuvent manipuler l'en-tête d'algorithme du token pour tromper le serveur et lui faire utiliser une méthode de vérification différente de celle prévue - permettant potentiellement un contournement complet de l'authentification. Le JWT hacking par confusion d'algorithme est l'une des attaques JWT les plus impactantes découvertes à ce jour.

Comprendre les algorithmes de signature JWT

Les JWT supportent deux catégories principales d'algorithmes de signature : symétrique (basé sur HMAC, comme HS256) et asymétrique (basé sur RSA ou ECDSA, comme RS256). Avec RS256, le serveur signe les tokens avec une clé privée et les vérifie avec la clé publique correspondante. Avec HS256, la même clé secrète est utilisée pour la signature et la vérification. Cette distinction est le fondement de l'attaque par confusion d'algorithme.

Comment fonctionne la confusion d'algorithme

L'attaque exploite une interaction dangereuse entre ces types d'algorithmes. Si un serveur utilise RS256, sa clé publique est souvent disponible (parfois même publiée). Un attaquant peut changer l'algorithme de l'en-tête JWT de RS256 à HS256, puis signer le token modifié en utilisant la clé publique du serveur comme secret HMAC. Lorsque le serveur traite ce token, une implémentation vulnérable lit l'algorithme depuis l'en-tête du token, voit HS256, et utilise sa clé publique RSA comme clé de vérification HMAC - correspondant exactement à la signature de l'attaquant. Cela permet à l'attaquant de falsifier des tokens avec des claims arbitraires.

Impact réel du JWT hacking

Des vulnérabilités de confusion d'algorithme ont été trouvées dans les principales bibliothèques JWT de multiples langages de programmation, incluant PyJWT pour Python, node-jsonwebtoken pour Node.js et firebase/php-jwt pour PHP. Une fois exploitées, les attaquants obtiennent la capacité de falsifier des tokens administratifs, d'escalader les privilèges, d'usurper l'identité de n'importe quel utilisateur et de contourner complètement l'authentification. La nature généralisée de cette vulnérabilité a conduit à des avis de sécurité importants et des mises à jour de bibliothèques dans tout l'écosystème JWT.

Prévention et implémentation sécurisée

Les implémentations JWT sécurisées doivent explicitement spécifier l'algorithme attendu côté serveur plutôt que de faire confiance à l'algorithme déclaré dans l'en-tête du token. Les bibliothèques doivent être configurées pour rejeter les valeurs d'algorithme inattendues, et les applications ne doivent jamais permettre le changement d'algorithme entre types symétrique et asymétrique. Maintenir les bibliothèques JWT à jour et suivre les meilleures pratiques de sécurité pour la gestion des tokens prévient les attaques par confusion d'algorithme.

Ce que vous apprendrez

  • Comment les algorithmes de signature JWT diffèrent entre HS256 et RS256
  • Les mécanismes des attaques par confusion d'algorithme JWT
  • Falsification de tokens en passant d'algorithmes asymétriques à symétriques
  • Identification des vulnérabilités de confusion d'algorithme dans les implémentations JWT
  • Configuration JWT sécurisée pour prévenir les attaques basées sur les algorithmes

Prérequis

Basic understanding of JWTs HTTP authentication concepts Familiarity with base64 encoding

Prêt à hacker ce lab ?

Créez un compte gratuit et pratiquez la cybersécurité.

Commencer - C'est gratuit
Commencez Votre Défi
~1-2 min de configuration
Serveur dédié
Instance privée
Puissance standard
Nouveau ? Voici comment faire
1
Cliquez sur "Start Lab" ci-dessus Vous obtiendrez votre propre machine avec une adresse IP
2
Explorez la cible Ouvrez l'IP dans votre navigateur et cherchez des vulnérabilités
3
Trouvez et soumettez les flags Les flags sont des textes secrets cachés dans le système - collez-les ci-dessous pour marquer des XP

Prêt à hacker ce lab?

Créez un compte gratuit pour démarrer votre propre serveur dédié, soumettre des flags et gagner des XP au classement.

Commencer à Hacker Gratuitement
13 000+ Hackers 100+ Labs & Cours Gratuit
Commencer Gratuitement