Remettre les lettres en place : décoder un flag ROT13
Le défi
Chaque lettre de ce flag a été décalée dans l'alphabet. Les accolades et les tirets bas n'ont pas bougé, donc la forme reste correcte - seules les lettres sont fausses. Cliquez sur le décodeur qui les remet en place, puis soumettez le flag.
Ce que tu vas apprendre
- Reconnaître un décalage de lettres grâce aux accolades intactes et aux lettres décalées d'un flag
- Inverser un décalage ROT13 avec un seul bouton de décodage
- Comprendre qu'un décalage de lettres fixe n'offre aucune vraie confidentialité
- Voir que faire tourner les lettres ne nécessite aucune clé, donc n'importe qui peut l'annuler
- Écarter le base64 et l'hex en remarquant que la chaîne n'est composée que de lettres, sous la forme d'un flag
Compétences testées
Prérequis
- Connaître l'ordre de l'alphabet anglais
- Être à l'aise pour lire un flag court de la forme NAME{some_text}
Comment ça marche
ROT13 est une méthode toute simple, et très ancienne, pour brouiller du texte. Elle décale chaque lettre de 13 positions dans l'alphabet, si bien que A devient N, B devient O, et ainsi de suite, en revenant au début une fois arrivé à la fin. Comme l'alphabet anglais compte 26 lettres et que 13 en est exactement la moitié, appliquer ROT13 une seconde fois ramène chaque lettre à sa place d'origine. C'est pourquoi le même bouton sert à la fois à brouiller et à débrouiller.
Ce qui compte pour la sécurité, c'est ce que ROT13 ne touche pas. Les espaces, les accolades, les tirets bas et les chiffres ne sont pas des lettres, donc ils ne bougent pas. La forme générale du texte est donc préservée. Dans un flag, on voit toujours le préfixe, les accolades et les tirets bas à leur place habituelle, alors que seules les lettres semblent fausses. Cette structure intacte associée à des lettres brouillées est la signature classique d'un décalage à la César comme ROT13.
ROT13 n'a pas de clé. La règle est publique et fixe, donc l'inverser ne nécessite ni mot de passe ni autorisation. C'est de l'encodage, pas du chiffrement. Cela convient pour cacher un spoiler ou masquer légèrement un texte, mais cela n'apporte aucune vraie confidentialité à une valeur. Les boutons base64 et hex du labo attendent des formats d'entrée différents et ne feraient que dénaturer une simple chaîne de lettres : ce sont des leurres ici.
Erreurs fréquentes
- Tenter le base64 en premier. La chaîne n'est composée que de lettres, sous la forme d'un flag, sans padding
=, donc ce n'est pas du base64. Les lettres décalées pointent vers ROT13. - Penser que la valeur est protégée. Un décalage sans clé n'est pas un verrou. N'importe qui peut inverser ROT13 en un clic.
- Décaler deux fois. Cliquer à nouveau sur ROT13 rebrouille le flag désormais lisible. Appliquez-le une seule fois et arrêtez-vous dès que les mots sont lisibles normalement.
- Soumettre la version brouillée. Seul le flag remis en place est correct, donc décodez-le avant de le soumettre.
Comment s'en protéger
Ce qu'il faut retenir pour les développeurs, c'est qu'un décalage de lettres n'est jamais un contrôle de sécurité. Si une valeur est sensible, protégez-la avec un vrai chiffrement nécessitant une clé secrète gérée, ou ne l'exposez pas du tout. Voir ROT13 ou tout autre décalage fixe autour d'une valeur doit se lire comme "légèrement masqué", jamais comme "sécurisé".
- N'utilisez jamais ROT13 ou un chiffrement de César pour cacher des mots de passe, des tokens ou des données personnelles.
- Utilisez un vrai chiffrement avec une clé gérée lorsque les données doivent rester confidentielles.
- Considérez tout décalage ou encodage réversible que vous trouvez comme cosmétique et décodez-le pour vérifier ce qu'il cache.
- Lors de la revue de vos propres systèmes, décalez et décodez chaque valeur masquée pour vous assurer qu'aucune donnée sensible n'est à un clic du texte en clair.