Les chiffres, c’est amusant : les clones de Wordle
2 février 2022
0 minutes de lectureChez Snyk, nous consacrons beaucoup de temps à la recherche de vulnérabilités. C’est parce que de nombreuses personnes cherchent de nouvelles façons de s’introduire dans des applications et des systèmes. Nous mettons souvent notre « chapeau gris » pour penser comme un pirate informatique malveillant. Je consulte régulièrement le code source, j’examine le trafic réseau et je scrute les chaînes de requête. Cette semaine, une petite chaîne de requête particulièrement intéressante a attiré mon attention sur l’un des nombreux sites clones de Wordle.
Je tiens à vous prévenir tout de suite : ATTENTION, DIVULGÂCHEURS. Même si je ne nomme pas le site en question, il ne sera pas difficile de le reconnaître, et ce que je vais écrire ci-dessous vous permettra de deviner n’importe quel mot personnalisé en un seul essai. Vous voilà prévenus !
Qui n’aime pas Wordle ? Tout le monde, évidemment ! À tel point que le New York Times a annoncé le rachat du Wordle original à son créateur. Les clones ne manquent pas, sous forme d’applications ou de sites web. Et certains n’ont pas de bonnes intentions ! Pour mémoire, voici le Wordle original officiel.
Parmi les clones, il y en a un plutôt réussi qui vous permet de choisir un mot personnalisé dans un dictionnaire disponible, puis d’envoyer un lien à vos amis pour qu’ils tentent de le deviner à la manière de Wordle.
Un ami m’en a envoyé un, et j’ai remarqué que l’URL contenait un paramètre de chaîne de requête nommé : code=. La suite ressemblait à du charabia. Mais mon sixième sens #chaoticneutral s’est éveillé. Cette suite de charabia faisait exactement 6 lettres, tout comme le mot. Une coïncidence ? Je ne crois pas ! Je me suis ensuite demandé s’il s’agissait d’un texte chiffré que je pourrais déchiffrer pour deviner le mot en un seul essai.
Quand je tombe sur ce genre de chose, je commence toujours par la solution la plus simple : le chiffre Atbash (oui, tous les liens renvoient au wiki de Gravity Falls, car chaque épisode se termine par un chiffre).
Les chiffres Atbash
Imaginons que l’URL contienne la chaîne de requête suivante : code=ociwti. Peut-être que le i représente la même lettre, décalée ? Après quelques minutes à tester différentes possibilités, il y en avait trop pour un simple chiffrement par substitution. J’ai donc décidé d’essayer de résoudre le mot normalement, puis de remonter le fil. Il m’a fallu 5 essais sur 6, mais j’ai trouvé le mot : sortie. Ça m’a tout de suite aidé, car j’ai alors compris qu’il ne s’agissait pas d’une simple substitution. Si c’en avait été une, la troisième lettre (r) et la dernière (e) auraient été identiques.
Les chiffres de César
Je me suis ensuite demandé s’il pouvait s’agir d’un chiffre de César (toujours Gravity Falls). Ce chiffre décale chaque lettre du texte en clair d’un certain nombre de lettres, vers l’avant ou vers l’arrière, par rapport au texte chiffré. Si l’on dépasse Z ou si l’on recule avant A, on reprend au début ou à la fin de l’alphabet. Le problème, c’est que le décalage reste le même et que la troisième et la dernière lettre du texte en clair seraient identiques. Mais l’idée de parcourir l’alphabet me plaisait.
Et si le nombre de lettres à parcourir pour passer du texte chiffré au texte en clair variait selon la position ? Cela révélerait alors une clé qui pourrait servir à déchiffrer n’importe quel texte chiffré. Puisque j’avais le texte chiffré et le texte en clair, pouvais-je retrouver la clé ? Voyons voir.
En avançant dans l’alphabet à chaque position, comme avec le chiffre de César, on obtient le nombre de lettres séparant chaque lettre du texte chiffré de sa correspondante dans le texte en clair (en tenant compte du retour au début de l’alphabet). Voici ce que j’ai trouvé :
O | C | I | W | T | I |
S | O | R | T | I | E |
4 | 12 | 9 | 23 | 15 | 22 |
Chiffre décrypté, faites défiler avec prudence...
Avec cette clé, il ne me restait plus qu’à essayer avec un autre Wordle personnalisé. J’en ai créé un, qui m’a donné : code=ywgkpv. Avant de faire défiler la page, voyez si vous pouvez le résoudre vous-même !
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Continuez à faire défiler...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Regardons le tableau complet :
Y | W | G | K | P | V |
4 | 12 | 9 | 23 | 15 | 22 |
C | I | P | H | E | R |
J’ai donc pu confirmer que la clé 4-12-9-23-15-22 fonctionnait avec n’importe quel Wordle personnalisé. Pas mal !
Si vous avez deviné de quel site je parle dans cet article, gardez-le pour vous. Pourquoi gâcher la surprise pour ceux qui n’ont pas choisi de cliquer sur cet article ?
J’espère que cette petite escapade dans les méandres de mon cerveau, avec ses fils rouges et ses punaises, vous a plu. Je ne peux pas m’empêcher de me demander ce qui se cache derrière les chaînes de requête dans les URL. Mais je reste fidèle au credo #chaoticneutral : une petite provocation pour rire, c’est amusant, mais sans faire de (vrai) mal.
Et si vous aimez les énigmes amusantes comme celle-ci, retrouvez-nous le 9 février à 11 h, heure de l’Est, pour une session de hacking en direct : Stranger Danger: Your JavaScript Attack Surface Just Got Bigger, animée par le seul et unique Liran Tal ! Vous ne pouvez pas participer cette fois-ci ? Bonne nouvelle : nous organisons ces sessions tous les mois. Inscrivez-vous via ce lien Zoom.
