VolgaCTF 2013 – admin 100

VolgaCTF 2013 - admin 100 - task description

Bis auf den Hinweis, dass es “viel zu lesen” gibt, ist die Aufgabenbeschreibung dieser Challenge (admin 100) ist nicht sehr aussagekräftig. Zusätzlich erhalten wir diese Datei. Nach dem Entpacken erhalten wir folgendes Ergebnis:

rup0rt@lambda:~/VolgaCTF2013/admin100$ ls
0  3  6  9  c     dot  g  j  m  p      r      t  w
1  4  7  a  coma  e    h  k  n  q      s      u  x
2  5  8  b  d     f    i  l  o  quote  space  v  y

Das Archiv beinhaltet viele Verzeichnisse, die nach fast jedem Buchstaben, jeder Zahl und einzelnen Sonderzeichen benannt sind. In jedem Verzeichnis befindet sich eine Datei namens “file”, die beispielsweise so aussehen:

12
25
37
59
96
113
116
122
[...]

Meiner Vermutung nach, beschreiben die Namen der Verzeichnisse das entsprechende Zeichen und die Zahlen in den “file”-Dateien die Positionen, an denen das Zeichen im Lösungstext vorkommt.

Um diese Vermutung zu überprüfen, schreiben wir ein kleines Perl-Skript, das die Positionen ausliest und die entsprechenden Buchstaben ausgibt:

#!/usr/bin/perl -w

@files = <*/file>;

for ($pos = 0; $pos<=1000; $pos++) {
  foreach $file (@files) {
    $char = substr($file, 0, index($file, "/"));
    open(FILE, $file);
    while () {
      $line = $_;
      chop($line);
      chop($line);
      if ($line eq $pos) {
        if ($char eq "space") { $char = " "; }
        if ($char eq "quote") { $char = "'"; }
        if ($char eq "coma") { $char = ","; }
        if ($char eq "dot") { $char = "."; }
        print $char;
      }
    }
    close(FILE);
  }
}

print "\n";

Das Skript ist unglaublich “quick&dirty” sowie unperformant geschrieben, erfollg aber seinen Zweck. Nach Ausführung erhalten wir diese Ausgabe:

rup0rt@lambda:~/VolgaCTF2013/admin100$ ./admin.pl
if you took a couple of david bowies and stuck one of the david bowies on the top of the other david bowie, then attached another david bowie to the end of each of the arms of the upper of the first two david bowies and wrapped the whole business up in a dirty beach robe you would then have something which didn't exactly look like john watson, but which those who knew him would find hauntingly familiar.

Da dieser Text zu lang für eine gültige Flagge ist, befragen wir Google, welche Informationen hierzu bekannt sind und finden als einen der ersten Treffer:

VolgaCTF 2013 - admin 100 - Google Search

Demnach handelt es sich um einen Auszug des Kapitels 31 aus dem vierten Buch von “The Hitchhiker’s Guide to the Galaxy” mit dem Titel “So Long, and Thanks for All the Fish”. Dies stellt auch die gesuchte Flagge dar!

Die Lösung lautet somit “So Long, and Thanks for All the Fish“.

Leave a Reply

Your email address will not be published. Required fields are marked *