Die Advents-Challenge 2024 ist beendet. Vielen Dank für Eure Teilnahme! Die Lösungen sind jetzt verfügbar.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Willkommen
Willkommen beim Hacking-Adventskalender.
Ab dem 01.12.2024 wirst Du hier bis zu 24 einzigartige Challenges finden.
Bei allen 24 Aufgaben muss ein Lösungswort gefunden werden. Dieses ist in der Beschreibung oder in angehängten Dateien versteckt.
Hier ein Beispiel: "gmbh{Fjotujfh}" ist als Angabe gegeben. Was nun? Zuerst einmal: lasst euch nicht von gmbh verwirren.
Die angegebene Zeichenkette sieht schon ähnlich zu flag{...} aus. Tatsächlich wurde hier die Cäsar-Verschlüsselung angewandt und alles um X Buchstaben verschoben.
Um von "flag" auf "gmbh" zu kommen braucht es eine Verschiebung um eins (X=1) ('g' liegt im Alphabet eins neben 'f').
Wie lautet demnach die Flag? (Für diese Aufgabe gibt es keine Punkte.)
Lösung (zum Anzeigen hier klicken)
- F → E
- j → i
- o → n
- t → s
- u → t
- j → i
- f → e
- h → g
flag{Einstieg}
. Bin
In dieser Reihe von Nullen und Einsen ist die Flag gespeichert:
Lösung (zum Anzeigen hier klicken)
flag{only10TypesOfPeople}
Morsecode
Hinweis: Die geschweiften Klammern musst du selbst hinzufügen, da sie in Morsecode nicht dargestellt werden können.
Lösung (zum Anzeigen hier klicken)
flag{Tasten}
HTML
Ich wollte eigentlich noch etwas zu dieser Challenge sagen...
Lösung (zum Anzeigen hier klicken)
flag{Kommentar}
. Denkmal nach
Was ist hier zu finden?
Lösung (zum Anzeigen hier klicken)
flag{Kryptologen-Denkmal}
. Lustige Challenge
Lösung (zum Anzeigen hier klicken)
flag{Emoji-Art}
. Le chiffre indéchiffrable
Die in diesem Brief verwendete Verschlüsselung galt vor einigen Jahrhunderten als unentzifferbar. Schaffst Du es, den Schlüssel zu finden und das Geheimnis der Flag zu lüften?
piw Cxay imulbf fdxs{bjbmkaks-saufewkfh-ubztmok-camtejp-gsaks-kflin-himifqqxl-xftszws}.
Eff fjbgnviuczbz Gjrqskbz,
Embd Avsqnlp-Tauhuny-Qqae
Lösung (zum Anzeigen hier klicken)
S + 23 = P
e + 12 = q
h + 0 = h
r + 18 = j
flag{breaking-sixteenth-century-ciphers-using-known-plaintext-attacks}
Die Post geht ab
Du kannst die Lösung einfach vom Server abfragen.
Frage dazu einfach /advents-hacking/challenge7.php
mit passwort=geheim
als Parameter an und Du bekommst die Lösung zurückgegeben ;).
Lösung (zum Anzeigen hier klicken)
passwort=geheim
mitgeschickt werden. Parameter treten bei HTTP vor allem im Zusammenhang mit Formularen auf. Der Titel weist darauf hin, dass es ein POST-Request sein soll. Es gibt zwei Möglichkeiten, diesen Request abzuschicken.Eine Möglichkeit ist, das HTML der Website zu bearbeiten, ein Formular einzufügen und dieses abzuschicken:
<input type="text" name="passwort" value="geheim">
<input type="submit">
</form>
Alternativ kann man den Request mittels
fetch
in der JavaScript-Konsole senden:
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
body: "passwort=geheim"
}).then(response => response.text())
.then(response => console.log(response));
Bei beiden Möglichkeiten enthält die Antwort vom Server die Flag:
flag{F0rm4l3r_HTTP_P0ST_R3qu3st}
H4x0r
Lösung (zum Anzeigen hier klicken)
flag{Sprache-der-Elite}
Dokument
Findest du in diesem Dokument die versteckte Flag?
(Die Challenge ist sowohl mit Microsoft Word als auch mit LibreOffice Writer lösbar.)
Lösung (zum Anzeigen hier klicken)
flag{think_outside_the_box}
Verhext
Die Wörter der Lösung sind verhext und anschließend als Dezimalzahlen gespeichert worden.
Sie müssen entzaubert und mit _
getrennt angegeben werden.
Beispiel: flag{eine_tolle_Wortfolge}
Lösung (zum Anzeigen hier klicken)
D1E5 157 D1E C001E F1A9
. Dann lässt sich die Flag ablesen (Groß- und Kleinschreibung kann hier beliebig sein): flag{dies_ist_die_coole_Flag}
. RGB
Ich kann auf meinem BiLdsChirm schon fast Die Flag erkennen. Sie ist nur etwas gestreckt...
Lösung (zum Anzeigen hier klicken)
Die Flag lautet also
flag{subpixel-art}
. Offensichtlich
Vielleicht ist die Flag gerade sichtbar...
Lösung (zum Anzeigen hier klicken)
flag{GenauHinschauen}
. SVG
Findest Du die Flag in diesem SVG-Bild?
Lösung (zum Anzeigen hier klicken)
viewBox
) vergrößern. Kaputtes Bild
Dieses Bild ist in zwei Teile zerbrochen. Kannst Du sie zusammenfügen?
Lösung (zum Anzeigen hier klicken)
- Windows:
type Teil1.png Teil2.png > Ausgabe.png
- macOS/Linux:
cat Teil1.png Teil2.png > Ausgabe.png
flag{wieder_zusammengebastelt}
. GIF
Ich habe dieses GIF gefunden. Aus irgendeinem Grund scheint es nicht zu laden. Kannst Du mir helfen?
Lösung (zum Anzeigen hier klicken)
flag{Langeweile}
HTTP
Die Lösung für das heutige Adventskalender-Türchen findest Du in einem HTTP-Header-Feld.
Lösung (zum Anzeigen hier klicken)
flag{Versteckte_Antwort}
Deko
Hoffentlich haben Dir die Challenges bisher gut gefallen. Hier nun eine eher einfache.
Mir ist aufgefallen, dass sich das Rentier in der rechten oberen Ecke sehr alleine fühlt.
Deine Aufgabe ist nun: Aktiviere den Spaß-Modus auf der Website,
indem Du im Localstorage einen Eintrag fun
mit dem Wert enabled
erstellst und die Seite neu lädst. Dann ist die Flag nicht zu übersehen.
Lösung (zum Anzeigen hier klicken)
flag{Festliche_Stimmung}
Verwechslung
Oh nein! Hier scheint eine Verwechslung passiert zu sein. Kannst Du die Bedeutung der festlichen Worte entschlüsseln und die Flag herausfinden?
heiligabendbescherungschneemann KRIPPErentierschneegeschenk rentierschneenikolauslichterketteschneemannlichterkette kripperentierschneegeschenk{KRIPPEwichtelnwinterschneemannwunschzettelrentierbescherungsternwunschzettelschneemann_LEBKUCHENschneemannbescherungwunschzetteladventskranzschneesternwunschzettellichterkettedekorationkinderpunschschneemannbescherunglichterkette}.
CHRISTSTOLLENbescherunglichterkette krippewichtelnschneemannnikolausadventskranzheiligabendrentierbescherungsternwunschzettelschneemannadventskranz GESCHENKwichtelnnikolausschneemanndekorationdekorationschneemannadventskranz,
SCHNEEMANNnikolausschneemannwichteln SCHNEEheiligabendadventskalenderschneemannadventskranzlichterkettedekoration-WUNSCHZETTELschneesternchristkindbescherungadventskranzgeschenk-LICHTERKETTEschneemannschneechriststollen
Lösung (zum Anzeigen hier klicken)
flag{Froehliche_Weihnachtszeit}
Schlittenrennen
Der Weihnachtsmann ist beim Ausliefern der Geschenke in Zeitnot geraten. Kannst Du ihm helfen, den Wald rechtzeitig zu durchqueren? Dazu musst Du einen Score von 10000 erreichen.
Lösung (zum Anzeigen hier klicken)
game/game.js
). Es ist sinnvoll, sich zuerst damit zu beschäftigen, wie das Spiel im Browser mit dem Server kommuniziert: Beim Spielstart wird ein Seed vom Server abgerufen, anhand dessen das Level (Anordnung der Bäume) generiert wird. Beim Spielende wird ein Request an den Server geschickt, welcher für jeden Zeitpunkt die gewählte Spur angibt. Der Server akzeptiert die Anfrage nicht, wenn zu viele oder zu wenige Eingaben gesendet werden oder eine Kollision mit einem Baum aufgetreten ist. Da das Spiel zu schnell läuft, um es selbst spielen zu können, muss man ein kleines Programm schreiben, welches einen Request schickt, um das Spiel auf dem Server zu starten (vgl. Funktion startGame
), das Level und pro x-Koordinate eine valide Position berechnet (vgl. Funktion getRandomLane
) und diese abschließend als Inputs sendet (vgl. Funktion submit
). In der Antwort auf den zweiten Request ist die Flag enthalten: flag{54eaeb1c219b0ab6}
Versteckt
Ein Hacker hat die Flag in diesem PDF vor uns versteckt.
Kannst Du sie finden?
Lösung (zum Anzeigen hier klicken)
flag{versteckte_flag}
Spurensuche
Es wurde der Computer eines bösen Hackers beschlagnahmt. Deine Aufgabe ist es nun, eine geheime Flag auf dem Computer zu finden.
Wir sind uns sicher, dass er sich die Flag mithilfe eines Terminal-Commands kurz vor der Beschlagnahmung ausgeben lassen hat.
Das Linux-Dateisystem des Hackers kannst Du im Terminal unten inspizieren.
Lösung (zum Anzeigen hier klicken)
help
werden einige mögliche Shell-Befehle aufgelistet. Wenn man die Hilfe zu dem ls
-Befehl abruft (ls --help
), welcher für das Auflisten der Dateien im aktuellen Verzeichnis verwendet werden kann, erfährt man über den Parameter -a
, bei dessen Angabe auch versteckte Dateien bzw. Ordner angezeigt werden. Deren Namen fangen auf Unix-ähnlichen Systemen üblicherweise mit einem Punkt an. In der Ausgabe des Befehl ls -a
ist u.a. die Datei .bash_history
sichtbar.Ein guter Anlaufpunkt, um auf einem Unix-ähnlichen System nach Spuren zu suchen, ist die Shell-History (in diesem Fall in der Datei
.bash_history
). Um diese auszulesen eignet sich der Befehl cat .bash_history
. Darin ist erkenntlich, dass der Hacker das Shell-Skript programm42.sh
im Ordner Documents/.geheim
ausgeführt hat. Mit folgenden Befehlen kann man das Programm ausführen und sich die Flag ausgeben lassen: cd Documents
cd .geheim
./programm42.sh
odercat programm42.sh
flag{geheimes_skript}
. Adventskranz
Dieser digitale Adventskranz scheint "verbuggt" zu sein. Wir haben Probleme damit, die Kerzen anzuzünden. Kannst Du uns helfen?
Lösung (zum Anzeigen hier klicken)
checked
auf true
setzen. Mit einem Klick auf Los ist die Challenge gelöst. Archiv
Kannst Du die im ZIP-Archiv versteckte Flag finden?
Lösung (zum Anzeigen hier klicken)
binwalk
herausfinden. Wenn man den ZIP-Teil aus der Datei entfernt bzw. das PNG-Bild in eine eigene Datei extrahiert, kann man die Flag aus dem Bild ablesen: flag{bild_in_zip}
Regex
Das Advents-Hacking-Team wünscht Euch
Lösung (zum Anzeigen hier klicken)
flag{Frohe Weihnachten}
flag{f20h3-w31hn4ch73n}
flag{Frohe_Weihn8en}
Encrypted
Diese Datei wurde mit einer einfachen Chiffre verschlüsselt.
Deine Aufgabe ist es, anhand vom gegebenen Ciphertext den Key zu ermitteln und die Datei damit zu entschlüsseln.
Hinweise:
- Für das Lösen dieser Aufgabe werden keine Punkte vergeben.
- Für diese Aufgabe wird keine Lösung veröffentlicht.
- Die ursprüngliche Datei besteht zum Teil auch aus nicht druckbaren ASCII-Zeichen.
- Versuche, Dich an bestimmten in der Datei auftretenden Strukturen zu orientieren.