30 Jahre heise online – Die Lösungen zur Rätselreise

Verschiedene Encodings, Hinweise im DNS, eine Cäsar-Chiffre, falsche Fehlerseiten und steganographisch versteckte Hinweise: Wir lösen unser Jubiläumsrätsel auf.

vorlesen Druckansicht 1 Kommentar lesen
Lesezeit: 14 Min.
Inhaltsverzeichnis

Erst einmal vielen Dank an alle, die an unserem Rätsel teilgenommen haben. Wir haben mit Freude das Leaderboard im Blick behalten und mitgefiebert, wer welche Errungenschaft zuerst lösen wird. Alle zwölf Achievements holte sich als erstes Stefan1507, gefolgt von Thiesi. Wellilein machte das Treppchen komplett! Herzlichen Glückwunsch, allen Dreien! Selbstverständlich gilt auch ein herzlicher Glückwunsch allen, die noch nachgefolgt sind und sich in unserem Leaderboard verewigt haben!

Die Rätsel sind sicherlich nicht ganz einfach, wir hatten von Anfang an vor, dass sie eine Herausforderung sein sollten – bei der E-Mail wurde es dann allerdings für einige schwieriger als geplant. Denn obwohl unser Mail-Server immer antworten sollte, wurden etwa zehn Prozent der Mails (viele von denselben Absendern) als Spam betrachtet und mit Schweigen bedacht. Glücklicherweise waren im Forum bereits Rätselbegeisterte zusammengekommen, die sich zeitnah gegenseitig geholfen haben, statt die eigenen Zwischenergebnisse für sich zu behalten. So wurden auch hilfreiche Tipps ausgetauscht, wie man um unseren E-Mail-Fauxpas herumkam, bevor wir ihn behoben hatten.

Videos by heise

Kommen wir zum Rätsel und ein paar Tipps, wie man auf die Lösungen kommen könnte.

Am Ende des Einleitungsartikels steht der erste Hinweis deutlich geschrieben: „Alles beginnt mit dem ersten Vorkommen der Hommingberger Gepardenforelle“. Das spielt natürlich auf den SEO-Wettbewerb der c’t an, der auf heise online zum ersten Mal von Jo Bager am 16.04.2005 Erwähnung fand. Dieser Artikel kann mit etwas Recherche gut gefunden werden, eben auch weil dieser spezielle Begriff („Hommingberger Gepardenforelle“) seinen Ursprung hier hatte. Die explizite Erwähnung des „ersten Vorkommen[s]“ soll klarmachen, dass wir nicht irgendeinen Artikel dazu suchen, denn davon gab es später noch mehr.

Wie kommt man auf den nächsten Hinweis?

Wie bei einer klassischen Schnitzeljagd, wo beispielsweise ein Pfeil aus Ästen am Boden in eine bestimmte Richtung zeigt, weiß man nicht, wie weit man diesem Pfeil folgen muss. Ob als nächstes ein Zettel unter einem Stein zu suchen ist, etwas im Laub versteckt wurde, eingeritzt in einen Baum oder ganz was anderes – man muss suchen und aufmerksam in alle Richtungen schauen. Genauso ist es hier. Der Pfeil ist die gefundene URL, wie es dort weitergeht, muss dann erkundet werden. Dabei können Sie die Überlegung anstellen, welche Ebenen eine Website alle hat. Per DNS erfährt der Browser die IP zur Domain, das Sicherheitsprotokoll wird ausgehandelt und Zertifikate geprüft. Nach dem HTTP-Request wird per HTTP-Response das HTML-Dokument übertragen. Im HTML steht Text, außerdem Verweise auf Bild-, CSS- und JavaScript-Dateien, die dann ebenfalls noch geladen werden. Irgendwo hier drin muss sich ein Hinweis befinden. Mit der Zeit des Rätsels sammelt sich eine Liste an möglichen Verstecken, die Sie immer wieder abgrasen können. Das Ganze lässt sich natürlich auch mit Skripten vereinfachen, die dann bei jeder neuen URL sofort einmal durchgetestet werden können. Beim Interpretieren von gefundenen Hinweisen kommt es wieder ganz auf die eigene Erfahrung an. Ganz ohne Recherche kommen Sie vermutlich nicht aus.

Nun wird es deutlich schwieriger. Im Einleitungsartikel sollen die mehrfachen Erwähnungen, dass das Rätsel durch die „technischen Schichten“ von heise online führt und die Beispiele im „Wie es weitergeht“-Abschnitt darauf einstimmen, dass nun in der Technik von heise online, statt im Text gesucht werden muss. Im Nachhinein wäre hier ein seichterer Anstieg der Komplexität wohl besser gewesen. Es dauerte über 24 Stunden nach Beginn des Rätsels, bis die erste Person diese Errungenschaft knackte, und im Forum wurde sich versichert, dass es tatsächlich auf der Gepardenforellen-URL einen weiteren Hinweis gebe.

Dieser Hinweis ist in einem Custom-HTTP-Header versteckt (X-). HTTP-Header kann man entweder mit den Browser-Entwicklungstools auslesen oder auch mit Kommandozeilentools, wie cURL, in diesem Fall wäre das:

curl -I https://www.heise.de/news/Jagd-frei-auf-die-Hommingberger-Gepardenforelle-153610.html

Im ungewöhnlich benannten HTTP-Header X-4173696D6F76 erkennt das geübte Auge Hex-Code – in diesem Fall Zweierblöcke aus Ziffern und Buchstaben von A bis F: 41 73 69 6D 6F 76Hex. Diese Zahlen im Hexadezimalsystem ergeben mit einer ASCII-Tabelle übersetzt „Asimov“.

Hex Dez Zeichen
41 65 A
73 115 s
69 105 i
6D 109 m
6F 111 o
76 118 v

Wem dieser Name nichts sagt, der wird nach einer sehr kurzen Recherche bei Isaac Asimov landen, einem bekannten Autor der Science-Fiction (und vieler Bücher anderer Genres). Was man bei Isaac Asimov kaum überlesen werden kann, ist, dass er für seine „3 Gesetze der Robotik“ bekannt ist. Der Custom-HTTP-Header hat als Wert „3“, was noch einmal ein kleiner Hinweis darauf sein sollte, worauf wir hinaus wollten. Wo werden auf Websites „Gesetze für Roboter“ hinterlegt? Genau, in der robots.txt und das ist auch die Lösung des zweiten Rätsels und der Ort, an dem es weitergeht.

In unserer robots.txt sind natürlich diverse Einträge. Gesucht ist jeopardy-ctf. ctf ist eine bekannte Abkürzung für „capture the flag“ – die Art von Wettbewerb, an dem Sie gerade teilnehmen. Aber wem die Abkürzung nichts sagt, kann sich beispielsweise auch über die Wayback-Machine eine Version dieser URL vom Januar ansehen und darüber feststellen, dass der /jeopardy-ctf/-Eintrag zu diesem Zeitpunkt noch nicht enthalten war. Sobald die korrekte URL einmal aufgerufen ist, gibt es keinen Zweifel mehr, da hier ein weiteres Rätsel wartet und auch der Seitentitel passenderweise „Rätsel“ lautet. Auch eine Eingabe der URL im Leaderboard bestätigt, dass Sie hier richtig sind.

Auf /jeopardy-ctf/ wartet nun ein Texträtsel mit kryptischen Hinweisen:

1. Texträtsel

"Oh Captain, mein Captain", das hat jeder schonmal gehört, ob

  • Polizistin
  • Herzchirurg
  • Rasenpfleger
  • Etymologin
  • Architektin
  • Konzertdirigent
  • Sopranistin

völlig egal. Der Rhythmus bringt dich weiter. Nimm keine Abkürzungen. Lass keine Leerstellen.

„Oh Captain, mein Captain“ soll erstmal nur einen Captain ins Bewusstsein rufen. Alle Assoziationen mit Walt Whitman oder „Der Club der Toten Dichter“ sind eine Finte. Die Auflistung der Berufe ist im Prinzip „völlig egal“, hier versteckt sich ein Hinweis hinter den Anfangsbuchstaben, die zusammen „PHREAKS“ ergeben. Wenn es bei dieser ungewöhnlichen Schreibweise mit PH noch nicht klingelt – pun intended – sollte eine kurze Recherche zum Phone-Phreaking führen. Sie brauchen gar nicht tief ins Thema einsteigen, um auf einen bestimmten Captain mit einer zentralen Rolle im historischen Phone-Phreaking-Kosmos zu stoßen: John T. Draper alias Captain Crunch.

Zentral für das Phone-Phreaking war ein 2600-Hertz-Ton. Darauf soll der letzte Teil des Textes hinweisen oder auf die gesuchte Schreibweise, nämlich „2600Hertz“. Dass „Rhythmus“ hier weit hergeholt ist, war eingepreist. Das Lösungswort kann man gut im Leaderboard testen, aber wo geht es jetzt weiter? Unter dem Texträtsel ist noch eine verlinkte E-Mail-Adresse mit einem vorausgefüllten Betreff: „tbd“, eine häufige Abkürzung für „to be d…“ – das „d“ ist immer mal was anderes, beispielsweise „delivered“, aber letztlich geht es immer darum, dass „tbd“ als Platzhalter für etwas steht, das noch nachgereicht wird. In diesem Fall soll das Lösungswort im Betreff per Mail geschickt werden. Bei korrektem Lösungsbegriff kommt eine Antwort mit dem nächsten Rätsel.

Die E-Mail-Antwort schickt Ihnen Folgendes zurück:

2. Texträtsel

Nami: Weißt du noch früher, als man bei Spielen einfach nicht weiter kam?
Koh: Ja, da musste man auf eine Besprechung im Computer-Spiele-Heft warten.
Nami: …oder darauf hoffen, dass Freunde an der Stelle schon weitergekommen sind.
Koh: Oder dass es einen Cheat gab, der einem weitergeholfen hat, aber das haben wir natürlich nieeee gemacht, um ein Level zu schaffen!
Nami: Natürlich nicht, nieeee! Irgendwann gab’s immerhin Foren im Internet, wo man sich austauschen konnte.
Koh: Foren sind eh großartig, zu allen möglichen Themen gab‘s Spezialforen. Wieviel Zeit ich schon in Foren verbracht und Hilfe bekommen hab – und manchmal immerhin auch mal selbst helfen konnte.
Nami: Total! Ich hatte immer die Forenstartseite offen und hab geguckt, was so Neues passiert.
Koh: Foren ey, manchmal echt magische Orte!Nami: haha, jetzt übertreib's nicht. Es ist ja nicht so, dass du da irgendwelche Tasten drückst und plötzlich passiert irgendwas Tolles.

Dieser Dialog zwischen Nami und Koh über Cheat-Codes bei Spielen und Foren beinhaltet mehrere Anspielungen, wie es weitergeht. Nami und Koh sind sicherlich ungewöhnliche Namen, aber werden erst im Kontext verdächtig. Wer den Konami-Code nicht kennt muss hier vermutlich etwas mehr recherchieren, für alle anderen sollte es halbwegs offensichtlich sein. Dafür geht es dann einfacher, weiter herauszubekommen, wo dieser Code einzugeben ist. Am Ende des Dialogs geht es explizit um eine „Forenstartseite“ und „…, dass du da irgendwelche Tasten drückst und plötzlich passiert irgendwas Tolles“.

Die Lösung ist also „Konami-Code“ und weiter geht es, wenn Sie den selbigen auf der Foren-Startseite eingeben.

(Bild: KI/heise medien)

UP UP DOWN DOWN LEFT RIGHT LEFT RIGHT B A auf der Foren-Startseite eingegeben und auf einmal erscheint ein Modal-Dialog mit einem Bild. Auf dem Bild steht „Ceci n'est pas un indice“ – eine Hommage an Magrittes „Ceci n'est pas une pipe“. Um hier den nächsten Schritt zu machen, müssen Sie sich wieder fragen, welche Ebenen ein Bild hat. Neben der Offensichtlichen des visuellen Bildinhalts gibt es natürlich noch den Dateinamen, das HTML-Tag nebst Attributen zur Integration in die Seite und dann noch den Dateiinhalt auf technischer Ebene. In so einer Bilddatei kann tatsächlich alles Mögliche versteckt werden, beispielsweise auch komplette ZIP-Archive mit anderen Dateien – ein Mittel der Steganografie. Wir haben es aber nicht ganz so wild getrieben und lediglich einen Text in normalen Metadaten des Bildes versteckt.

Um die Metadaten aus dem Bild auszulesen, können Sie Online-Tools verwenden oder aber auch das Bild herunterladen und mit Tools wie exiftool anzeigen: exiftool bild.png reicht für eine Übersicht bereits aus. Dabei kommt der folgende Eintrag zum Vorschein: Comment: xbagnxg. Das sieht komisch aus. Wer diesen Fund mit einer simplen Frage einer KI vorwirft („Was bedeutet xbagnxg?“) bekommt gleich die Antwort, dass es sich dabei um das Wort „kontakt“ handelt – verschleiert mit der Cäsar-Chiffre ROT13.

Ohne KI gestaltet sich das schon etwas schwieriger. Aber Sie können sich mit dem Ausschlussprinzip annähern. Gängige Hash-Verfahren würden nicht nur aus Buchstaben bestehen. Auch eine Codierung über andere Zahlensysteme wie Hexadezimal oder Oktal fällt raus. Da es sich nur um Buchstaben handelt, könnte es eine simple Verschiebe-Chiffre sein – also die Verschiebung eines Buchstabens im Alphabet um einen festen Wert. Man könnte alle 25 Optionen einmal durchprobieren und würde immerhin nach der Hälfte schon Erfolg haben, da ROT13 eine Verschiebung um genau 13 Buchstaben bedeutet. Bei längeren Texten bietet sich auch eine Häufigkeitsanalyse der Buchstaben an. Ist die Verteilung prozentual ähnlich zur deutschen Sprache und handelt es sich lediglich andere um Buchstaben, ist die Wahrscheinlichkeit hoch, dass es sich um eine Verschiebe-Chiffre handelt.

Zurück zum Rätsel. Der gefundene Hinweis „kontakt“ könnte natürlich vieles bedeuten. Im Einleitungsartikel heißt es, dass es häufig bei einer URL weitergeht. Da bietet sich doch die Kontakt-Seite von heise online an.

Auf der Kontakt-Seite geht die Suche wieder von vorn los. Der zuvor gelernte cURL-Befehl gibt schon mal schnell Aufschluss darüber, dass dieses Mal keine verdächtigen HTTP-Header verbaut sind. Wo könnte noch etwas versteckt sein? Vielleicht ein Kommentar im Seitenquelltext. Wer den Seitenquelltext aufruft, kann mit der Suchfunktion nach bekannten Kommentar-Mustern suchen. Für HTML ist das <!--, für CSS /* und für JavaScript neben /* auch //. Ein kleines JavaScript kann helfen, sich immerhin alle HTML-Kommentare schnell in der Browser-JavaScript-Konsole ausgeben zu lassen:

const comments = [];
const walker = document.createTreeWalker(document,NodeFilter.SHOW_COMMENT,null,false);
let node;

while (node = walker.nextNode()) {
  comments.push({
    text: node.nodeValue.trim(),
    element: node
  });
}

console.table(comments);

Dabei fällt im Kontext des Rätsels der Kommentar https://www.heise.de/30jahre/hnweis.html ins Auge. Hat sich da etwa ein Tippfehler eingeschlichen? Der Aufruf der URL sieht jedenfalls wie eine 404-Fehlerseite aus. Der HTTP-Status-Code bestätigt diese Annahme. Wer sich eine Hinweis-Suche auf der falschen URL sparen möchte, reicht die Adresse erstmal im Leaderboard als mögliche Lösung ein und siehe da: Es mutet nur falsch an, Sie haben den richtigen Hinweis gefunden.

Wer die Fehlerseiten-Finte überwunden hat, kann auf der hnweis.html weiter suchen. Fündig wird man hier in der Browser-JavaScript-Konsole. Alternativ kann auch eine Analyse des HTML-Codes zur Lösung führen, da hier das JavaScript txt.js aus dem Pfad /30jahre/ eingebunden ist und somit auffallen sollte. Das JavaScript gibt die Log-Meldung ToDo: Record prüfen aus. Die Log-Meldung ist ein direkter Arbeitsauftrag und mit dem Dateinamen txt.js soll er in die Richtung von TXT Records im DNS weisen. Haben Sie noch nichts vom DNS gehört und sind Ihnen TXT Records unbekannt, ist das hier sicherlich eine harte Nuss, da es keine weiteren Hinweise gibt. Eine Suche nach allen Hinweis-Begriffen („todo record prüfen txt.js“) fördert aber bereits Hinweise auf TXT Records zutage. Nach eingehender Recherche oder dem Einsatz eines LLMs sollte sich der Nebel lichten. Da es hier zu keiner URL weitergeht, ist die Lösung TXT Record.

DNS-Abfragen können Sie auf unterschiedliche Weise mit verschiedensten Tools machen, so auch mit unserem DNS-Online-Tool. Auf der Kommandozeile geht das ganz simpel mit dig, um nur die TXT-Records zu bekommen, tippen Sie einfach dig heise.de txt. Als Ergebnis bekommen Sie mehrere Einträge, viele davon anscheinend Schlüssel-Wert-Paare, die eher offiziell aussehen oder einem Dienst zugeordnet werden können. Interessant wird es bei c3ViZG9tYWlu. Wieder solch ein Zeichensalat, aber dieses Mal anders als beim 6. Rätsel. Eine einfache Verschiebe-Chiffre scheint es in diesem Fall nicht zu sein. Zahlen größer acht schließen das Oktal-, Buchstaben im Alphabet nach F das Hexadezimal-System aus. Aber was ist mit Base64? Es fehlen zwar die markanten = am Ende des Strings, doch die werden bei Base64 lediglich zum Auffüllen angefügt, sie müssen also nicht zwingend bei jedem Base64-String vorkommen. Wirft man den String in einen Base64-Decoder bekommt man das Wort „subdomain“ zurück, das auch die Lösung dieses Rätsels darstellt.

Es soll also mit Subdomains weitergehen. Ein Blick ins TLS-Zertifikat könnte vielleicht helfen, da dort oft noch weitere Domains gelistet werden, für die das Zertifikat gültig ist. Doch hier hilft das leider nicht. Das TLS-Zertifikat von heise online ist nur für www.heise.de ausgestellt. Aber Zertifikate könnten vielleicht doch eine Hilfe sein, denn diese sind öffentlich einsehbar. Ein Dienst, der dabei helfen kann, ist beispielsweise crt.sh. Sucht man dort nach heise.de (und schließt der Übersichtlichkeit halber abgelaufene Zertifikate aus) bekommt man eine lange Liste an Subdomains. Hier hilft nur lesen und nach ungewöhnlichen Namen Ausschau halten. Irgendwann springt einem 0x1e.heise.de ins Auge. 0x ist ein Marker für eine folgende Hexadezimalzahl und 1e entspricht 30 im Dezimalsystem – klingt doch ganz passend für ein 30-Jahre-Jubiläum. Die URL stellt hier wieder die Lösung dar.

Rufen Sie die zuvor gefundene URL auf steht dort geschrieben: „Herzlichen Glückwunsch, du hast 󠁊󠁅󠁔󠁚󠁔󠁗󠁉󠁒󠁋󠁌󠁉󠁃󠁈den letzten Hinweis gefunden!“

Das klingt zwar nach dem Ende des Rätsels, aber durch das Leaderboard weiß man, dass es hier noch etwas zu finden gibt. Ein Blick in den überschaubaren Seitenquelltext zeigt mitten im Satz zwischen „hast“ und „den“ diverse weitere Zeichen an, allesamt als HTML-Entities hinterlegt. Im Browser hingegen ist nichts davon zu lesen. Für Entities gibt es natürlich zuhauf Tabellen im Netz. Diese unsichtbaren Unicode-Zeichen sind sogenannte Unicode Tag-Blocks, die unter anderem für Emoji-Tags verwendet werden, aber auch zur LLM-Manipulation eingesetzt werden. Wie auch in unserem Rätsel lässt sich damit sehr einfach für den Menschen nicht lesbarer Text einschleusen, der von einer KI dann wiederum problemlos verstanden wird. Die unsichtbaren Zeichen ergeben die finale Lösung „jetzt wirklich“.

Die zwölfte Errungenschaft bekommt man automatisch freigeschaltet, sobald alle elf vorigen Rätsel gelöst sind.

Wir hoffen, dass Ihnen unser Rätsel Spaß gemacht hat! Idealerweise haben Sie bei der Recherche noch etwas gelernt oder altes Wissen mal wieder aufgefrischt. Wir bedanken uns für Ihre Teilnahme – auf die nächsten gemeinsamen Jahre!

(hih)