Tag Archives: php

Hackover CTF 2015 – messagecenter

This writeup describes the solution for the messagecenter challenge in Hackover CTF 2015 held by Chaos Computer Club Hamburg.

Hackover CTF 2015 - Messagecenter - Task description

The task was … to find the flag …  as usual :D. So lets look at the website.

Hackover CTF 2015 - Messagecenter - Website

So we get a simple website with login fields and some information (demo login data, more username, etc.). When logging in using the “demo” account and “remember me” option we get this view:
Continue reading

CodeGate 2013 Quals – Web 200

Bei dieser Challenge (web 200) wird uns eine Webseite genannt, die angegriffen werden soll um so an den Schlüssel zu gelangen. Ein erster Aufruf der URL liefert folgendes Bild:

CodeGate CTF 2013 - web 200 - website

Neben dem Quellcode der gesamten Webseite und einer Login-Möglichkeit, wird auch eine Seite zur Generierung eines One-Time-Passwords (OTP) bereit gestellt, die sich so darstellt:

CodeGate CTF 2013 - web 200 - one time password

Es wird also ein Einmal-Passwort generiert, das sich alle 20 Sekunden ändert und demnach auch nur für 20 Sekunden Gültigkeit besitzt. Darüber hinaus wird eine ID angegeben, die aus der derzeitigen IP-Adresse besteht. Aus dem Quellcode der Login-Seite (login_ok.php) lässt sich folgendes entnehmen:

if (strcmp($password, $_POST["ps"]) == 0) {
  echo "welcome, <b>".$_POST["id"]."</b><br />";
  echo "<input type='button' value='back' onclick='history.back();' />";

  if ($_POST["id"] == "127.0.0.1") {
    echo "<hr /><b>".$flag."</b><br />";
  }
}

Daraus ergibt sich das Ziel, um diese Challenge zu lösen. Der Login muss über die ID “127.0.0.1” (localhost) realisiert werden, damit der Inhalt der Flag-Datei offenbart wird. Dazu müssen wir entweder von der IP-Adresse 127.0.0.1 auf die OTP-Generierung zugreifen, was nicht möglich sein wird oder anderweitig die Passwortabfrage unter Angabe dieser ID umgehen.
Continue reading

Hack.Lu CTF 2012 – Spambot

Hack.Lu CTF 2012 - Spambot - task description

Die Spambot – Challenge berichtet von einer Kontroll-Oberfläche, die verwendet wird um automatisiert (SPAM-)Nachrichten in Gästebücher oder andere Online-Plattformen einzubringen. Ziel soll es daher sein, die Spambots “aufzuhalten”.

Zuerst verschaffen wir uns wie gewohnt einen Überblick, indem wir die bereit gestellte Oberfläche ausgiebig erkunden und damit experimentieren. Sie stellt sich folgendermaßen dar:

Hack.Lu CTF 2012 - Spambot - bot control website

Es handelt sich um ein einziges Formular, dem eine URL übergeben werden kann. Zusätzlich wird die Webseite “/guestbook/” genannt, die verwendet werden kann, um das Senden der SPAM-Nachrichten zu testen. Diese Webseite sehen wir uns auch einmal kurz an.
Continue reading

plaidCTF 2012 – Paste

plaidCTF 2012 - Paste - task description

Bei dieser Challenge (Paste) wird uns ein Webserver genannt, der eine Paste-Engine betreibt. Unser Auftrag ist es herauszufinden, welche Daten auf dieser Webseite ausgetauscht wurden. Dafür bekommen wir zusätzlich noch den Quellcode der Paste-Seite zur Verfügung gestellt.

Zunächst rufen wir die Webseite auf um uns einen Überblick zu verschaffen.

plaidCTF 2012 - Paste - website

Es handelt sich um eine Paste-Engine zum Einfügen von Quellcode. Dazu können die Pastes mit Beschreibungen versehen und bestehende Pastes mit weiteren Daten als Followup ergänzt werden. Um nicht per Hand nach möglichen Schwachstellen suchen zu müssen, sehen wir uns direkt die vorhandenen Quellcodes an.
Continue reading

plaidCTF 2012 – Addition is Hard

plaidCTF 2012 - Addition is Hard - task description

Hier die “erste” Challenge (Addition is Hard) des diesjährigen Plaid CTF. Wie der Name bereits andeutet, geht es um eine Rechnenaufgabe. Ziel ist es, den Term

0x0 +0x7068703f = ?

zu lösen.

Im Nachhinein ist diese Aufgabe wohl lächerlich einfach, dennoch hat sie mir anfangs etwas Kopfzerbrechen bereitet. Denn nachdem alle Versuche, die Rechnung in verdiedensten Zahlensystemen zu lösen, mit “wrong key” beantwortet wurden, schien eine weitergehende Betrachtung für erforderlich.
Continue reading