Skip to main content

Fetch the Flag CTF 2022: Lösung zu Potty Training

feature ctf potty training

11. November 2022

0 Min. Lesezeit

Vielen Dank, dass Sie bei Fetch mitgespielt haben! Glückwunsch an die Tausenden Spielerinnen und Spieler, die bei Fetch the Flag CTF dabei waren. Ein großes Dankeschön auch an die Snyker, die die Challenges entwickelt, getestet und dokumentiert haben!

Dieser Beitrag wurde von Snyk Ambassador Mohammad-Ali A’râbi (@MohammadAliEN) verfasst. Melden Sie sich an, um Snyk Ambassador zu werden und erhalten Sie noch heute Einblicke in Snyk – einschließlich Zugang zu CTFs, bevor sie starten.

Die Challenge (mit etwas historischem Kontext)

Wenn Sie an Snyks Fetch the Flag CTF 2022 teilgenommen haben, kennen Sie die Challenge Potty Training. Sie war schnell und einfach, aber ich fand sie ziemlich interessant. Außerdem war es das erste Flag, das ich je bei einem Sicherheitswettbewerb erbeutet oder gefunden habe!

Die Challenge bestand also nur aus einer PNG-Datei namens potty.png. Wenn es sich um ein Bild handelt, ist wahrscheinlich etwas darin verborgen. Nachrichten in Bildern zu verstecken, ist so alt, dass es dafür einen griechischen Namen gibt: Steganografie. Das bedeutet „Nachrichten verbergen“. Wahrscheinlich ist dies die älteste Methode, geheime Nachrichten zu versenden – lange bevor die Kryptografie erfunden wurde.

Im Jahr 480 v. Chr. lebte Demaratos, ein Grieche, der aus seiner Heimat vertrieben worden war, in der persischen Stadt Susa (auch Shush genannt). Er beobachtete, wie der persische König Xerxes ein Heer zusammenstellte, um einen Überraschungsangriff auf Griechenland zu starten. Also schrieb er eine Nachricht, versteckte sie in einem Holzscheit und ließ sie von einem Boten nach Sparta bringen. Die Spartaner brauchten eine Weile, um die richtige Python-Bibliothek zum Extrahieren der verborgenen Nachricht zu finden, aber schließlich gelang es ihnen. Na gut, dieser Teil stimmt nicht. Die Spartaner nutzten kein Python. Sie deckten die Nachricht auf, indem sie Verschiedenes ausprobierten und Ideen von allen einbezogen.

Okay, genug Geschichte. Mein Punkt ist: „Steganografie“ ist das Wort des Tages.

Die Lösung

Als ich mit der Challenge anfing, dachte ich zunächst nicht an Steganografie und untersuchte die Datei mit Texteditoren wie Vim. Doch wie erwartet war alles Kauderwelsch. Die zweite Schwierigkeit bestand darin, die richtige Bibliothek zum Extrahieren der verborgenen Nachricht zu finden. Ich wollte ohnehin Python verwenden. Als ich also die Begriffe Steganografie und Python bei Google kombinierte, stieß ich auf dieses nette Python-Paket namens stegano.

In der Beschreibung steht, dass man das Paket nach der Installation auch über die CLI verwenden kann. Installieren wir es also zuerst:

pip3 install stegano

Und anschließend über die CLI:

stegano-lsb reveal -i potty.png

Die Ausgabe sieht so aus:

       import requests
        r = requests.get('https://potty-training.c.ctf-snyk.io/')
        print(r.text)

In der PNG-Datei versteckt sich also etwas heimtückischer (oder besser gesagt Snyky) Python-Code. Jetzt, da wir ihn extrahiert haben, speichern wir ihn in einer Python-Datei:

stegano-lsb reveal -i potty.png > potty.py

Korrigieren Sie die Einrückungen ein wenig und führen Sie den Code aus:

python3 potty.py

Das Snippet wird ausgeführt, wirft aber einen SSL-Zertifikatsfehler. Das bedeutet, dass das HTTPS-Protokoll nicht funktioniert. Vielleicht erinnern Sie sich nicht mehr an HTTP im Internet. Als jemand Anfang 30 erinnere ich mich aber noch an die Zeit, als es HTTP-Websites gab. Ändern wir also den Code und ersetzen die https-URL durch http – der guten alten Zeiten wegen:

import requests
r = requests.get('http://potty-training.c.ctf-snyk.io/')
print(r.text)

Bei der Ausführung wird diese tolle Nachricht angezeigt:

<html>
  <head>
    <title>Good puppy!</title>
  </head>
  <body>
    <h1>Good puppy! 🐕</h1>
    <p>Here's your flag 🦴</p>
    <p>SNYK{dd67edb70a28335068dd5ea9304007b69543357ff471b3144e3355bca34cb35d}</p>
    <a href="https://snyk.io/blog/snyk-international-dog-day-recap/">Snyk + Dogs = 💜</a>
  </body>
</html>

Tada! ? Wir bekommen einen niedlichen Welpen und ein tolles Flag zum Erbeuten.

Zum Schluss

Es hat mir wirklich Spaß gemacht, diese Challenge beim CTF-Event zu lösen. Bei meinem letzten Capture-the-Flag-Wettbewerb spielte ich Call of Duty 2 mit Freunden in einer lokalen Spielhalle. Ich würde sagen, Snyks Flag zu erbeuten hat mehr Spaß gemacht, als die Flags der WWII-Fraktionen zu erobern (die CTF-Karten in CoD 2 sind so unausgewogen!). Ich freue mich schon auf das CTF im nächsten Jahr!

Meine wichtigsten Erkenntnisse:

  • Es gibt ein Protokoll namens HTTP. Es ist alt, aber nicht veraltet.

  • Steganografie ist sehr alt, aber nicht veraltet.

  • Wenn Sie mehr über die Geschichte solcher Challenges erfahren möchten, lesen Sie The Code Book: The Science of Secrecy from Ancient Egypt to Quantum Cryptography von Simon Singh.

  • Wenn Sie nicht weiterwissen, verwenden Sie Python.

Möchten Sie erfahren, wie wir alle anderen Flags gefunden haben? Auf unserer Seite mit den Fetch-the-Flag-Lösungen erfahren Sie, wie es geht.

Weiterlesen

illustration hero ai
Blog

PHP behebt zwei kritische unauthentifizierte RCE-Schwachstellen (CVE-2026-109618, CVE-2026-109619): Jetzt aktualisieren

Zwei kritische Sicherheitslücken im Request-Lebenszyklus von PHP können unauthentifizierte Remote Code Execution ermöglichen. Aktualisieren Sie auf eine korrigierte Version oder installieren Sie für ältere Versionen einen Backport des Anbieters.

blog feature ai lilac
Blog

Mit agentischer Behebung Ihren Schwachstellen-Backlog in Pull Requests verwandeln

Der Evo Remediation Agent ist jetzt in der öffentlichen Vorschau verfügbar und erweitert Evo Agentic AppSec um die automatisierte Auflösung von Abhängigkeiten. AppSec-Teams können jetzt kontinuierliche Behebungskampagnen durchführen

AI Background min crop
Blog

KI ruft alle Risiken auf den Plan, die Sie akzeptiert haben: Sieben Erkenntnisse aus dem AI Security Panel: Unfiltered

KI macht Angriffe günstiger und schneller und legt Risiken offen, die Unternehmen bereits tragen. Vier Sicherheitsverantwortliche erklären, warum Abwehr in Maschinengeschwindigkeit und schnellere Behebung jetzt unverzichtbar sind.