Exploitez une faille d'empoisonnement de cookie sur un portail d'entreprise : décodez le cookie de session Base64, passez votre rôle à admin et capturez le flag. Pratique concrète de sécurité web, rien d'autre que votre navigateur.
L'empoisonnement de cookie est l'une des failles de sécurité web les plus fondamentales, et la comprendre est essentiel pour quiconque débute en sécurité applicative. Les cookies HTTP sont de petites données que le navigateur stocke et renvoie à chaque requête vers le serveur d'origine. Lorsqu'une application web stocke des décisions d'autorisation dans des cookies côté client sans protection d'intégrité, un attaquant peut falsifier ces valeurs pour élever ses privilèges et atteindre des fonctionnalités restreintes. Ce lab pratique HackerDNA vous fait exploiter exactement cette erreur.
De nombreuses applications utilisent des cookies pour suivre les sessions et stocker l'état d'authentification. Après la connexion, le serveur remet au navigateur un cookie contenant les informations de session. Parfois c'est un identifiant de session aléatoire qui pointe vers des données conservées sur le serveur ; d'autres fois ce sont les données réelles de l'utilisateur encodées avec un schéma réversible comme Base64 ou JSON. La question de sécurité est simple : le serveur valide-t-il le cookie à son retour, ou fait-il confiance à tout ce que le client envoie ?
Lorsqu'une application stocke un rôle, un identifiant utilisateur ou un indicateur de permission directement dans un cookie en utilisant un encodage réversible plutôt qu'une signature cryptographique, elle ouvre la porte à l'empoisonnement de cookie. Un attaquant décode le cookie, change le rôle de guest à admin, le ré-encode et le renvoie. Si le serveur fait confiance à la valeur, l'attaquant obtient un accès administrateur. Cette unique vérification manquante explique pourquoi la falsification de cookie reste un classique de la formation en sécurité web et des rapports de bug bounty réels.
Une idée fausse courante est qu'un cookie Base64 est chiffré. Base64 n'est qu'un encodage qui transforme des données binaires en texte ASCII, il n'offre donc aucune confidentialité. Toute valeur Base64 se décode instantanément avec les outils intégrés du navigateur, la fonction console atob() ou un utilitaire en ligne de commande comme base64 -d. Les développeurs qui s'appuient sur Base64 pour masquer des données sensibles construisent un faux sentiment de sécurité qu'un attaquant défait en quelques secondes.
Les applications sécurisées ne font jamais confiance aux données côté client pour l'autorisation. Les sessions côté serveur conservent les rôles et permissions sur le serveur et les référencent par un identifiant de session aléatoire qui ne révèle rien. Lorsqu'un cookie doit transporter des données utilisateur, une signature cryptographique (HMAC) ou un chiffrement authentifié rend toute falsification détectable. Les frameworks modernes le fournissent : Flask avec itsdangerous, les cookies signés de Django et cookie-session d'Express.js rejettent un cookie modifié au lieu de lui faire confiance. Entraînez-vous à l'attaque ici, et vous reconnaîtrez la défense partout.
Créez un compte gratuit et pratiquez la cybersécurité.
Lancez votre machine dédiée pour commencer à hacker
Créez un compte gratuit pour démarrer votre propre serveur dédié, soumettre des flags et gagner des XP au classement.
Commencer à Hacker GratuitementLabs qui partagent des compétences similaires
Choisissez comment vous voulez commencer
Connectez-vous à votre compte