Die Web 100 – Challenge des VolgaCTF erklärt zunächst einmal die Funktion der verlinkten Webseite auf http://10.10.0.5. Demnach handelt es sich um ein Portal um Mitteilungen zu platzieren, wobeo den VIP-Benutzern besondere Rechte zuteil werden. Ein Blick auf die Webseite selbst zeigt uns:
Die Seite “Space Diary”, die leider nur auf russisch angeboten wurde, ermöglicht es uns, sich im oberen Bereich mit Benutzername und Passwort anzumelden. Des Weiteren ist unten erkennbar, dass VIP-Benutzer bereits Nachrichten hinterlassen haben.
Ein erster Versuch zeigt, dass jeder beliebige Benutzername und jedes beliebige Passwort zur Anmeldung akzeptiert wird. Wir wählen daher “1338” als Login-Namen sowie als Passwort.
Die obere Statuszeile ändert sich danach ab, so dass wir mit “1338” begrüßt werden, ein “logout”-Button existiert und ein Guthaben angezeigt wird, das für uns zunächst 0$ beträgt. Weiter hat sich an der Seite nichts geändert, weshalb wir einen Blick zu den Cookies werfen.
Die Webseite hat zwei Cookies angelegt: einen für die aktuelle Sitzung “PHPSESSID” sowie einen Cookie namens “checked”, der auf “false” gesetzt ist. Um die Funktion zu überprüfen, ändern wir diesen Cookie auf “true” ab und laden die Seite erneut.
Die obere Statuszeile hat sich verändert und ein neuer Link wurde eingefügt! Zudem existiert nun im unteren Bereich der Webseite die Möglichkeit, selbst Mitteilungen im System zu hinterlassen, die (da wir kein VIP-Mitglied sind) nach kurzer Zeit jedoch wieder verschwinden. Zusätzlich kosten diese Mitteilungen ebenfalls Geld – abhängig von Inhalt und Farbe mindestens Zwei Dollar. Wir folgen also zunächst dem Link auf die Seite “http://10.10.0.5/earn_money.php?premium”.
Leider wieder nur auf russisch fragt uns die Seite, ob wir für 10 000 000 USD die VIP-Mitgliedschaft erwerben wollen (erster Link). Falls wir nicht genug Geld besitzen sollten, steht ein weiterer (zweiter) Link zur Verfügung, mit dem Geld verdienen können. Dieses klicken wir an und sehen folgendes:
Nach erneuter Übersetzung finden wir heraus, dass das Lösen des Captchas uns jeweils einen Dollar bringt. Wir müssen also 10000000 Mal das Captcha eingeben, um die VIP-Mitgliedschaft kaufen zu können – oder einen anderen Weg finden ;-).
Wir erinnern uns, dass die Kosten einer Nachricht auch von der verwendeten Farbe abhängen. Demnach muss irgendwo im System die Umrechnung der Farbe in die Kosten stattfinden. Wie wäre es, wenn wir anstatt einer gültigen HTML-Farbe wie “#ffffff” (weiß) einen negative Farbe übergeben könnten und so anstatt Geld zu verlieren, Geld gutgeschrieben bekommen würden?
Das probieren wir direkt aus und suchen die Webseite heraus an die neue Nachrichten gepostet werden, nämlich: “http://10.10.0.5/engine.php”. Ein legitimes Erstellen eines Mitteilung mit weißer Schrift und dem Inhalt “test” würde demnach wie folgt aussehen und uns Zwei Dollar kosten:
Nachdem wir uns erneut Zwei Dollar über das Captcha verdient haben, ändern wir diesen Post so ab, dass die Farbe negativ wird und wir so vielleicht das System austricksen könnten.
Ohne ausreichende Validierung der Daten wird uns erneut Erfolg gemeldet. Wir rufen erneut die Hauptseite auf, um festzustellen, ob sich unser Geldbetrag verändert hat.
Und tatsächlich konnten wir mit dieser Anfrage bereits 10000000 Dollar verdienen. Wir klicken uns erneut durch die Links, um die VIP-Mitgliedschaft zu erwerben, was diesmal ohne Probleme und nach “Abbuchung” des Geldes funktioniert! Beim Aufruf der Hauptseite sehen wir diesmal folgendes Ergebnis:
Die Lösung lautet somit “NOT_BAD_100_points_4U“.
Gut gemacht, sorry für den russischen Schnittstelle.
Der Autor dieser Task =)
Hah, no problem 😉