Spaß mit Chiffren in Wordle-Klonen
2. Februar 2022
0 Min. LesezeitBei Snyk verbringen wir viel Zeit damit, Schwachstellen zu untersuchen. Das tun wir, weil es da draußen viele andere gibt, die neue Wege erforschen, in Apps und Systeme einzudringen. Oft setzen wir unsere „Grey Hats“ auf, um wie böswillige Hacker zu denken. Ich sehe mir regelmäßig den Quellcode an, prüfe den Netzwerkverkehr und werfe einen Blick auf Query-Strings. Diese Woche fiel mir auf einer der vielen Wordle-Klon-Websites ein besonders reizvoller kleiner Query-String auf.
Gleich vorweg: SPOILER-ALARM. Ich nenne zwar die konkrete Website nicht, aber es dürfte nicht schwer sein, sie herauszufinden. Und mit dem, was ich im Folgenden schreibe, könnten Sie jedes beliebige benutzerdefinierte Wort mit einem Versuch erraten. Sie sind gewarnt!
Wer von uns liebt Wordle nicht? Niemand, genau! So weit ist es schon gekommen, dass die NY Times angekündigt hat, das Original-Wordle von seinem Autor zu kaufen. Es gibt jede Menge Nachahmer, sowohl als App als auch als Web-App. Und einige davon haben nichts Gutes im Sinn! Der Vollständigkeit halber: Hier ist das offizielle Original-Wordle.
Unter den Nachahmern gibt es auch einen guten, bei dem Sie ein benutzerdefiniertes Wort aus einem verfügbaren Wörterbuch auswählen und Ihren Freunden einen Link schicken können, damit sie versuchen, das Wort im Wordle-Stil zu erraten.
Ein Freund schickte mir so einen Link, und mir fiel auf, dass die URL einen Query-String-Parameter namens code= enthielt. Was danach kam, sah wie Kauderwelsch aus. Aber mein #chaoticneutral-Spinnensinn begann zu kribbeln. Die Buchstabenfolge war genau 6 Zeichen lang, und das Wort hatte 6 Buchstaben. Zufall? Wohl kaum! Mein nächster Gedanke war, dass es sich vielleicht um Geheimtext handelte und ich ihn entschlüsseln könnte, um das Wort mit einem Versuch zu erraten.
Wenn mir so etwas begegnet, fange ich immer mit dem Naheliegendsten an: der Atbash-Chiffre (Ja, alle Links führen zum Gravity-Falls-Wiki, weil jede Folge mit einer Chiffre endet).
Atbash-Chiffren
Stellen Sie sich vor, die URL enthält den Query-String code=ociwti. Vielleicht steht das i für denselben Buchstaben, nur verschoben? Nach ein paar Minuten Herumprobieren gab es einfach zu viele Möglichkeiten für eine einfache Substitution. Also dachte ich, ich versuche das Wort ganz regulär zu erraten und arbeite mich anschließend rückwärts vor. Es dauerte 5 von 6 Versuchen, aber schließlich hatte ich das Wort: sortie. Das half mir sofort, denn jetzt wusste ich, dass es keine einfache Substitution war. Sonst wären der dritte Buchstabe (r) und der letzte (e) identisch gewesen.
Caesar-Chiffren
Mein nächster Gedanke war, dass es sich vielleicht um eine Caesar-Chiffre handelte (ebenfalls aus Gravity Falls). Bei dieser Chiffre wird der Klartextbuchstabe um eine bestimmte Anzahl von Buchstaben vor oder hinter dem Geheimtextbuchstaben verschoben. Wenn Sie über Z hinaus oder vor A zurückgehen, fangen Sie einfach wieder am anderen Ende an. Das Problem dabei: Die Verschiebung ist nach wie vor konstant, sodass der dritte und der letzte Buchstabe des Klartexts identisch wären. Aber die Idee, sich im Alphabet zu bewegen, gefiel mir.
Was wäre, wenn Sie für jede Position im Geheimtext einfach eine andere Anzahl von Buchstaben weiterzählen müssten, um zum Klartext zu gelangen? Dadurch würde sich ein Schlüssel ergeben, mit dem sich jeder Geheimtext lösen ließe. Da ich sowohl den Geheimtext als auch den Klartext hatte, konnte ich den Schlüssel daraus ableiten? Sehen wir mal.
Wenn ich an jeder Position wie bei einer Caesar-Chiffre vorwärts gehe, ergibt sich die Anzahl der Buchstaben, um vom Geheimtextbuchstaben zum Klartextbuchstaben zu gelangen (mit Berücksichtigung des Übergangs am Ende des Alphabets). Das kam dabei heraus:
O | C | I | W | T | I |
S | O | R | T | I | E |
4 | 12 | 9 | 23 | 15 | 22 |
Chiffre gelöst – scrollen Sie mit Bedacht weiter …
Mit diesem Schlüssel musste ich nur noch ein weiteres benutzerdefiniertes Wordle ausprobieren. Ich erstellte ein eigenes, das code=ywgkpv ergab. Bevor Sie weiterscrollen: Finden Sie die Lösung selbst heraus!
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Scrollen Sie weiter …
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Werfen wir einen Blick auf die große Tafel:
Y | W | G | K | P | V |
4 | 12 | 9 | 23 | 15 | 22 |
C | I | P | H | E | R |
Damit konnte ich bestätigen, dass der Schlüssel 4-12-9-23-15-22 bei jedem benutzerdefinierten Wordle funktioniert. Nicht schlecht!
Wenn Sie wissen, welche Website ich in diesem Beitrag meine, behalten Sie es bitte für sich. Warum den Spaß für alle verderben, die nicht auf diesen Blogbeitrag geklickt haben!
Ich hoffe, Ihnen hat dieser kleine Ausflug in die mit rotem Garn und Reißzwecken gespickten Windungen meines Gehirns gefallen. Wenn ich Query-Strings in URLs sehe, kann ich nicht anders, als mich zu fragen, was dahintersteckt. Aber ich halte mich immer an das #chaoticneutral-Motto: Ein bisschen necken, um gemeinsam zu lachen, macht Spaß – aber richten Sie keinen (echten) Schaden an.
Und wenn Sie Spaß an Rätseln wie diesem haben, machen Sie am 9. Feb. um 11 Uhr EST bei einer Live-Hacking-Session mit: Stranger Danger: Your JavaScript Attack Surface Just Got Bigger mit dem einzigartigen Liran Tal! Sie können diesmal nicht dabei sein? Gute Nachrichten: Wir veranstalten solche Sessions jeden Monat. Melden Sie sich über diesen Zoom-Link an.
