Advent-Challenges

Die Advents-Challenge 2023 ist beendet. Vielen Dank für eure Teilnahme!

Willkommen

0

Einfach
Linus

1

Einfach
MD5

2

Einfach
Q

3

Einfach
C

4

Mittel
Zip

5

Einfach
Sicherung

6

Schwer
JS

7

Einfach
Git

8

Mittel
Weiß

9

Einfach
Geschenk

10

Einfach
deb

11

Mittel
Obv?

12

Schwer
Hüte

13

Einfach
moz://a

14

Mittel
Bunte Mischung

15

Mittel
Minecraft

16

Schwer
Roboter

17

Mittel
$H

18

Mittel
Unsichtbare Tinte

19

Schwer
Skid

20

Mittel
Gommemode

21

Schwer
Hacker-Bild

22

Einfach
AES

23

Mittel
IEC

24

Einfach
Bonus

25

Extrem

Willkommen

Einfach

Willkommen beim Hacking-Adventskalender.
Ab dem 1.12.2023 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 Verchiebung 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)

Um die Flag zu erhalten, muss jeweils der vorherige Buchstabe im Alphabet gefunden werden.
  • F => E
  • j => i
  • o => n
  • t => s
  • u => t
  • j => i
  • f => e
  • h => g

Linus

Einfach

Eingesetzt bei PCs und vorallem Servern ist Linux ein sehr weit verbreiteter, quelloffener Kernel (Bestandteil eines Betriebssystems).
Ihr kennt sicher auch einige Distributionen, welche den Linux-Kernel verwenden, wie zum Beispiel Arch Linux, Ubuntu, openSUSE, Linux Mint etc.
Sogar Android nutzt den Linux-Kernel!
Wisst ihr aber auch, wer angefangen hat Linux zu programmieren?

Bitte tragt den Vor- und Nachnamen des ersten Entwicklers ein.
Bsp.: flag{Hans_Dampf}

Lösung (zum Anzeigen hier klicken)

Linus Torvalds hat 1991 angefangen, den Linux-Kernel zu entwickeln. Die Flag lautet also flag{Linus_Torvalds}.

MD5

Einfach

Dieser Hash wurde mithilfe von MD5 gehashed. Versuche ihn zu entschlüsseln um die Lösung zu erhalten.

MD5-Hash: d3cc0884b6eb8a7424a4047082836e77

Lösung (zum Anzeigen hier klicken)

Zum "Entschlüsseln" des Hashes können entweder installierbare Werkzeuge wie John the Ripper und Hashcat oder Websites wie crackstation.net verwendet werden. Solche Websites verwenden meist sogenannte Rainbow Tables, bei denen für sehr viele Eingaben die Hashwerte einmalig ausgerechnet und gespeichert wurden. Somit ist es möglich, in diesen Tabellen einen bestimmten Hashwert nachzuschlagen und die Eingabe herauszufinden. Die Eingabe für den genannten Hashwert war einfach, die Flag ist damit flag{einfach}.

Q

Einfach

Die Flag steht bereits hier: flag{versteckteFlag}

Lösung (zum Anzeigen hier klicken)

Die Flag kannst du finden, indem du mit den Entwicklerwerkzeugen deines Browsers den Quellcode der Seite untersuchst. Dies geht z.B. mit einem Rechtsklick auf die Stelle, an der die Flag stehen sollte. Anschließend muss der Menüpunkt Untersuchen ausgewählt werden. Dann wird der Quellcode angezeigt und man kann erkennen, dass die Flag mithilfe der CSS-Property visibility versteckt wurde. Die Flag lautet flag{versteckteFlag}.

C

Mittel

Let's c.

Lösung (zum Anzeigen hier klicken)

Folgende Fehler haben sich in den C-Code eingeschlichen:
  • Zeile 15: Die Main-Funktion muss zwar nicht unbedingt Parameter haben, sie muss aber einen Integer zurückgeben. Richtig würde die Zeile also int main() { oder int main(int argc, char* argv[]) { lauten.
  • Zeile 16: Bei der Deklaration von Arrays in C müssen die eckigen Klammern nicht nach dem Datentyp, sondern nach dem Namen des Arrays stehen. Die Codezeile sollte also so aussehen: char solution[] = "ThisIsNotTheFlag!";
  • Zeile 17: Beim Kompilieren wird diese Zeile zwar keinen Fehler, sondern nur eine Warnung hervorrufen, wenn das Programm allerdings ausgeführt wird, entsteht nicht die erwartete Ausgabe, da für die Ausgabe eines Strings nicht der Format Specifier %i, sondern %s verwendet werden muss. Richtig wäre also printf("%s", solution);
  • Zeile 19: Hier fehlt die schließende geschweifte Klammer der Main-Funktion.
Die Flag ist also flag{15;16;17;19}.

Zip

Einfach

Diese Datei hat die .zip-Endung.
Ich sehe jedoch keinen Reißverschluss...

Lösung (zum Anzeigen hier klicken)

Der Inhalt einer Datei ist unabhängig von der Dateiendung. Nur weil der Name der Datei auf .zip endet, muss es sich nicht unbedingt um eine ZIP-Datei handeln. Die gegebene Datei ist tatsächlich eine Textdatei mit lesbarem Inhalt. Wenn du die Datei mit einem beliebigen Texteditor öffnest, kannst du die Flag lesen: flag{schwarzes_schaf}.

Sicherung

Schwer

Hallo,
die Flag für die Challenge steht bereits im Dump.
Leider stehen noch ein paar andere Flags daneben und ich weiß nicht, welche Flag die richtige ist...
Ich habe außerdem auch keine Ahnung über den Aufbau der Datenbank.
Wenn du die richtige Flag herausfinden kannst, darfst du sie gleich eintragen.

Lösung (zum Anzeigen hier klicken)

In der Datei Dump.zip befinden sich mehrere SQL-Dateien. Dabei handelt es sich um die Sicherung einer Datenbank. Es gibt vier Tabellen: challenge_users, challenge_challenges, challenge_flags und challenge_flags_challenges. In der Tabelle challenge_challenges kann man sehen dass es zwei Einträge gibt. Der richtige ist der Advents-Challenge-Eintrag mit der ID 1337. Als nächstes kann man in der Kreuztabelle, die eine n:n-Beziehung zwischen Challenges und Flags herstellt, nachschlagen, welche Flag der Challenge mit der ID 1337 zugeordnet ist. Am Eintrag in der Kreuztabelle ist ersichtlich, dass die Flag mit der ID 690 gesucht ist. Diese kann man in der Tabelle challenge_flags finden: flag{sql0.36874327043907795}.

JS

Einfach

Hoffentlich haben euch 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 mit der Funktion enableFun()!
JavaScript wird dir helfen.

Lösung (zum Anzeigen hier klicken)

Eine JavaScript-Funktion kann mit den Entwicklerwerkzeugen des Browsers aufgerufen werden. Diese können mit der Taste F12 geöffnet werden. Unter dem Konsolentab kann anschließend enableFun() eingegeben werden, dann wird der Spaß-Modus aktiviert und die Flag ausgegeben: flag{Weihnachtsdeko}

Git

Mittel

Diese Challenge soll zeigen, an welche Informationen man ganz einfach mit einem .git Ordner der Git-Versionsverwaltungssoftware kommen kann.
Demanch kann es ein weiterer Schritt sein, um an die Identität des Erstellers zu kommen (Nutzername).
Mit externen Tools kann man sogar die komplette Historie aller Dateien anschauen.

Stöbert also etwas im Verzeichnis herum und findet die Flag.

Lösung (zum Anzeigen hier klicken)

Im entpackten Verzeichnis befindet sich der .git-Ordner, welcher einige Unterverzeichnisse hat. Der Inhalt der Datei .git/logs/HEAD gibt Aufschluss über vergangene Commits im Git-Repository. Die selben Informationen kann man (falls Git installiert ist) mit dem Befehl git log angezeigt bekommen. Drei Commits sind bereits vorhanden, einer von diesen enthält die Flag in der Commit-Message: flag{git commit -m "flaggy"}

Weiß

Einfach

Wie kann in einem komplett weißem Pixel eine ganze Flag versteckt sein? Es ist einfach: Es geht nicht.

Lösung (zum Anzeigen hier klicken)

Viele Dateiformate speichern zusätzlich zu den eigentlichen Inhalten sogenannte Metadaten, welche z.B. Änderungsdatum, Version der zum Erstellen verwendeten Software etc. enthalten. Das Format, in dem Metadaten in Bildern gespeichert werden, nennt sich EXIF. Bei manchen Betriebssystemen kann man die EXIF-Metadaten beim Öffnen des Bilds in einem Eigenschaftsmenü einsehen. Falls diese Option nicht vorhanden sein sollte, kann auch eine Website verwendet werden. Die Flag befindet sich im Comment-Feld der Metadaten: flag{m3tadaten}

Geschenk

Einfach

Es ist zwar noch nicht ganz Weihnachten, ihr bekommt jedoch trotzdem schon einmal
ein Geschenk von mir. Vielleicht habe ich etwas viel Geschenkpapier verwendet, aber ich denke
ihr werdet es schon aufbekommen ;).

Und noch ein Tipp für das Passwort:
Was muss man mit Geschenkpapier tun, wenn man das Geschenk nicht aus dem Papier bekommt?
(Lösung ist substantiviert und mit ß anzugeben)

Lösung (zum Anzeigen hier klicken)

Die Flag ist in mehreren Ebenen an Geschenkpapier/Archivformaten verpackt. Bei der ersten Ebene handelt es sich um ein verschlüsseltes ZIP-Archiv. Das Passwort lautet Aufreißen. Die weiteren Ebenen können ohne Passwort mit Software wie 7-Zip oder Onlinewerkzeugen entpackt werden, danach kann man die Flag auslesen: flag{endlich_geschafft}.

deb

Mittel

Debian-Pakete haben die Dateiendung ".deb". Damit kann man auf Debian-basierten Betreibssystemen (wie bsp. Debian und Ubuntu) die Software ganz einfach installieren.

Ich habe auf meinem Rechner dieses Installations-Paket in meinem Downloads-Ordner gefunden, weiß aber nicht mehr, was es beim Ausführen installieren würde.
Bitte findet für mich heraus, um welches Programm es sich handelt und gebt mir die Homepage-Addresse, damit ich es erneut herunterladen kann. Hoffentlich ist es kein Virus :O

Lösung (zum Anzeigen hier klicken)

Das Debian-Paket verwendet die xz-Kompression und kann z.B. mit 7-Zip oder Online-Tools entpackt werden. Darin befindet sich ein Tar-Archiv der zu installierenden Dateien. Wenn man dieses Tar-Archiv im Texteditor öffnet findet man als erste Datei eine XML-Datei, welche die zu installierende Anwendung beschreibt. Darin ist unter anderem die Homepage aufgelistet. Die Anwendung ist Microsoft Visual Studio Code und die Homepage lautet https://code.visualstudio.com. Damit ist die Flag flag{https://code.visualstudio.com}

Obv?

Schwer

Der Code der Challenge ist vielleicht nicht obvious (offensichtlich) aber dafür offen ersichtlich.
Um die Flag neu zu validieren muss die Seite übrigens nicht neu geladen werden.

Lösung (zum Anzeigen hier klicken)

Hier handelt es sich um obfuscated JavaScript-Code, d.h. dieser wurde so umgeschrieben, dass er schlechter lesbar ist, aber trotzdem noch funktioniert. Es wurden z.B. alle Leerzeichen und Einrückungen entfernt. Den Code kannst du mit Rechtsklick > Untersuchen finden, er befindet sich im HTML-Code direkt nach der Ausgabe, ob die eingegebene Flag richtig oder falsch ist.

Ein guter erster Schritt ist es, Leerzeilen einzufügen. Danach kann man den Pfad im Code verfolgen, der beim Anklicken vom Validieren-Knopf ausgeführt wird. Wenn die Funktion c(i) true zurückgibt, dann ist die Flag richtig. Parameter der Funktion ist die eingegebene Flag. Jetzt kann die Funktion weiter analysiert werden:

Zuerst wird die eingegebene Flag an btoa übergeben, dies bedeutet, dass sie Base64-encodet und das Ergebnis in s gespeichert wird.

Anschließend wird für jedes Zeichen in s der Char-Code gelesen (charCodeAt) und in Hex umgewandelt. Anschließend wird der Hex-String ggf. mit Nullen ausgefüllt (padStart(2,'0')). Diese Hex-Strings werden miteinander verkettet und an o angehängt. Ein weiterer String (o1) wird erstellt.

Für jedes Zeichen dieses neuen Strings wird überprüft, ob es im Array a vorhanden ist. Array a enthält alle Zeichen des Alphabets in der richtigen Reihenfolge. Wenn das Zeichen nicht im Alphabet ist (also eine Zahl im Hex-String ist), wird es direkt in den String o1 kopiert. Ansonsten wird der Index im Alphabet gelesen, um 13 erhöht und auf 26 gewrapt (mit der Modulo-Rechnung a[(i+13)%26]). Das Ergebnis davon wird an die Ausgabe angehängt.

Also handelt es sich um ROT13, da die Buchstaben des Hex-Strings jeweils um 13 Zeichen im Alphabet nach hinten verschoben wurden. Der aus der Flag erzeugte String wird schließlich mit p verglichen.

p ist ein bereits definierter String, über den wir die Flag erhalten können, wenn wir die selben Operationen rückwärts durchführen. Zuerst müssen also alle Buchstaben im Alphabet um 13 verschoben werden. Dann kommen wir auf den String

5a6d78685a337473615756695a584a6663325679646d 56796332567064476c6e583342792f475a6c626e303d.

Dieser muss nun von Hex zurückkonvertiert werden, das Ergebnis davon ist dann unser Base64-String: ZmxhZ3tsaWViZXJfc2VydmVyc2VpdGlnX3By/GZlbn0=. Dieser kann dann z.B. mit atob(...) dekodiert werden und ergibt letztlich die Flag: flag{lieber_serverseitig_prüfen}

Hüte

Einfach

Ordne richtig zu. Klicke die Hüte an, um ihre Farbe zu ändern. Achtung: Nicht jede Farbe wird benötigt!

Wenn in Medien über "Hackerangriffe" berichtet wird, sind oft sie schuld.
Sie betreiben illegales Hacking mit bösen Absichten und oft auch wegen des Geldes.
Red Hat
Red Hat
Sie spielen im Internet gegen die oben genannten "bösen" Hacker.
Obwohl man sie als "gut" ansehen kann, nutzen sie oft ebenfalls verbotene Wege.
Red Hat
Red Hat
"Ethische Hacker" achten darauf, keine Straftaten zu begehen und ethisch konform zu hacken.
Sie stellen sich ebenfalls gegen die "bösen" Hacker.
Red Hat
Red Hat
Dieser Hut beschreibt Hacker, welche erst Hacken lernen.
Sie können die Auswirkungen ihrer Taten oft noch nicht abschätzen und werden als Script-Kiddies (Skids) bezeichnet, wenn sie hautsächlich von anderen geschriebenen Skripte ausführen.
Red Hat
Red Hat
Dieser Typ gehört weder zu den "guten" noch zu den "bösen" Hackern. Sie hacken, teils illegal, vor allem zum Spaß. Sie brechen oft unerlaubt in Systeme ein, kennen sich aber nicht schlecht aus und helfen oft Unternehmen die Sicherheitslücken zu beheben, jedoch manchmal gegen Geld.
Red Hat
Red Hat
Zuletzt noch diejenigen, die persönliche Rache suchen oder auch welche, die Systeme vor ihrer Veröffentlichung auf Sicherheitslücken testen.
Red Hat
Red Hat

Lösung (zum Anzeigen hier klicken)

Hacker, die illegales hacking mit bösen Absichten betreiben, nennt man Black Hats.

Hacker, die im Internet gegen die Black Hats spielen und dabei verbotene Wege nutzen, nennt man Red Hats.

Die ethischen Hacker, welche darauf achten, keine Straftaten zu begehen, nennt man White Hats.

Script-Kiddies werden auch Green Hats genannt.

Hacker, die zwar illegal hacken und unerlaubt in Systeme einbrechen, aber den Unternehmen manchmal dabei helfen, die Sicherheitslücken zu beheben, nennt man Grey Hats.

Hacker, die persönliche Rache suchen oder Systeme vor ihrer Veröffentlichung auf Sicherheitslücken testen, bezeichnet man als Blue Hats.

moz://a

Mittel

Unter der angegebenen URL könnt ihr eine Datei eines PDF-Readers von Mozilla finden.
Bekannte Anwendungen von Mozilla sind Mozilla Firefox oder auch Thunderbird. Mozilla legt Wert auf Datenschutz und Sicherheit.
Auch deshalb sind viele Anwendungen quelloffen (= open source ), wie auch dieser PDF-Reader.
Die Datei, welche ich herausgesucht habe, existierte früher in einem anderen Ordner unter einem anderen Namen. Welcher könnte das gewesen sein?
flag{ordner/alterName.js}

https://github.com/mozilla/pdf.js/blob/master/src/pdf.js

Lösung (zum Anzeigen hier klicken)

Bei GitHub kann man den gesamten Bearbeitungsverlauf einer Datei einsehen, indem man in der Codeansicht der Datei rechts oben History anwählt. Bei der gegebenen Datei muss man anschließend ganz unten einige Male Older wählen. Dann ist ersichtlich, dass die Datei von utils/cffStandardStrings.js in pdf.js umbenannt wurde. Die Flag lautet also flag{utils/cffStandardStrings.js}.

Bunte Mischung

Mittel

Diese Farben ergeben zusammen das Lösungswort:

Lösung (zum Anzeigen hier klicken)

Die 6 abgebildeten Farben werden jeweils durch ihre RGB-Codes definiert. Diese kann man mit den Entwicklerwerkzeugen des Browsers finden. Wenn man diese nacheinander vom Dezimalsystem zu ASCII-Text umwandelt, dann kommt man auf die Flag:
  • 102 => f
  • 108 => l
  • 97 => a
  • 103 => g
  • 123 => {
  • 98 => b
  • 117 => u
  • 110 => n
  • 116 => t
  • 101 => e
  • 95 => _
  • 102 => f
  • 108 => l
  • 97 => a
  • 103 => g
  • 103 => g
  • 101 => e
  • 125 => }

Somit lautet die Flag flag{bunte_flagge}.

Minecraft

Schwer

Hallo Hacker-Freunde,
ich schaue mir in letzter Zeit gerne einige Videos von LiveOverflow, einem tollen Hacker, an.
Er hat auch eine Minecraft-Serie erstellt und ich benötig die textures.minecraft.net URL,
um einen LiveOverflow-NPC auf meinem Server zu spawnen.
Eine minecraft-textures URL könnte so aussehen:
http://textures.minecraft.net/texture/a26d3c1ddd9af3cf973457c441f36a65b0e118b344df9dd7c1309e425c09e57

Bitte findet die richtige URL, damit ich einen LiveOverflow auf meinem Server haben kann :).

Lösung (zum Anzeigen hier klicken)

Auf der Website namemc.com kann man die Minecraft-Skins eines beliebigen Spielers einsehen. Anschließend kann man links unten den aktuellen Skin auswählen. Jeder Skin hat eine eigene ID und kann mehreren Spielern zugeordnet sein. Auf der rechten Seite kann man einen Command auswählen, um den Kopf des Skins im Spiel zu generieren. Falls ein Spieler seinen Skin ändert, funktioniert der Command immer noch und generiert den Kopf mit der selben Textur. In dem Command kann man für die texture einen Base64-String erkennen. Wenn man diesen dekodiert, findet man die URL für den gesamten Skin im JSON. Die Flag lautet flag{http://textures.minecraft.net/texture/516188534f58ac1f5be050180d6f4400bc4d75b9cb2e1ea48b78a501e632883}.

Roboter

Mittel

Webmaster können mit einer bestimmten Textdatei (welche normalerweise im Webroot liegt: xyz.de und nicht wie hier: xyz.de/asdf; [hier nur Proof-of-Concept -> bei dieser Challenge liegt sie nicht im Webroot]) Suchmaschinen mitteilen, welche Seiten bei der Suche nicht auftauchen sollen.
Dies sind in der Regel Seiten, welche uninteressant für normale Nutzer sind oder auch welche, die sie nicht sehen sollen.
Ein Beispiel hierfür wäre eine Loginseite, bei der man in eine Administrator-Oberfläche kommt.

Auch hier liegt eine solche Datei.
Finde die vor Suchmaschinen versteckte Seite und erlange somit die Flag!

Lösung (zum Anzeigen hier klicken)

Die Datei heißt robots.txt und befindet sich in diesem Fall bei regiomontanus-gymnasium.de/advents-hacking/robots.txt. Darin ist ein Eintrag enthalten, der allen Robotern den Zugriff auf /ihr_haettet_die_url_nicht_erraten.txt verbietet. Wenn man die URL regiomontanus-gymnasium.de/advents-hacking/ihr_haettet_die_url_nicht_erraten.txt aufruft, dann erhält man die Flag: flag{oder_doch?}

$H

Mittel

Deine Aufgabe ist es, von dieser Unix-Shell aus mit dem gegebenen Passwort auf einen anderen Rechner zuzugreifen und dann die Flag auszulesen. (Es werden nur einige Kommandos unterstützt, da diese Shell keine echte Shell, sondern lediglich eine Simulation ist.)

Um die Shell zu verwenden, musst du eingeloggt sein.

Lösung (zum Anzeigen hier klicken)

Im Heimverzeichnis befinden sich zwei Dateien, welche man mit dem Befehl ls auflisten kann: hosts.txt und passwords.txt. Mit den Befehlen cat hosts.txt und cat passwords.txt kann man deren Inhalte jeweils auslesen. Einer der verfügbaren Befehle, die bei der Eingabe von help ausgegeben werden, ist nmap. Damit kann man einen anderen Rechner auf dort laufende Serverdienste untersuchen. In hosts.txt ist die IP-Adresse 192.168.13.37 aufgeführt. Dass auf dem dieser IP-Adresse zugehörigen Rechner ein SSH-Server läuft, kann man an der Ausgabe von nmap 192.168.13.37 erkennen. Über SSH anmelden kann man sich mit dem Befehl ssh admin@192.168.13.37. Den Benutzernamen (admin) und das einzugebende Passwort (vBAxB5mJ) kann man in der Datei passwords.txt finden. Nach dem Anmelden hat man mit der Shell Zugriff auf den anderen Rechner. Im Home-Verzeichnis befindet sich die Datei flag.txt, deren Inhalt mit cat flag.txt lesen kann: flag{Portscan}.

Unsichtbare Tinte

Schwer

Vorteile solcher Dateien sind laut Erfindern, dass man beim Ausdrucken Tinte spart.

Lösung (zum Anzeigen hier klicken)

Die Dateiendung lässt (in diesem Fall) auf den Inhalt schließen: ws steht unter anderem für Whitespace. Dabei handelt es sich um eine Programmiersprache, deren Programmcode nur aus Tabs, Leerzeichen und neuen Zeilen besteht. Die gegebene Datei ist ein Programm, welches in dieser Programmiersprache geschrieben wurde. Man kann dieses Programm z.B. mit dem Online-Tool https://www.dcode.fr/whitespace-language ausführen. Dann wird die Flag ausgegeben: flag{weisse_Tinte}.

Skid

Mittel

In der Datei findet ihr einen Auszug eines CSS-Stylesheets.
CSS-Dateien werden zur Formatierung von Webseiten (Text, Hintergrund, etc.) verwendet.
Diese Datei sieht jedoch sehr verdächtig aus, ich vermute, der Inhalt wurde geklaut... Doch woher?
Bitte gib den exakten Pfad zur echten Datei im GitHub-Repository im Format flag{URL} ein.
Bsp.: flag{https://github.com/group/repo/stylesheets/style.scss}

Lösung (zum Anzeigen hier klicken)

Mit der Website grep.app kann man GitHub nach Codezeilen durchsuchen. Vor allem Codekommentare helfen dabei, die Quelle einer Datei wiederzufinden. Wenn man auf grep.app nach dem Kommentar // TitleBar support sucht, findet man die URL der Datei auf GitHub: flag{https://github.com/signalapp/Signal-Desktop/blob/main/stylesheets/components/App.scss}.

Gommemode

Schwer

Heyho Minecraftfreunde,
Ich habe mal wieder auf einem Minecraft-Server gespielt.
Auf einem der größten deutschen Server, um genauer zu sein.
Ich habe etwas PvP in einem FFA-Modus gespielt und bin auf die Hüte-Sammlung gestoßen (siehe Bild).
Auf welcher Karte habe ich gespielt? (Name der Karte gesucht; Flag ist in Großbuchstaben anzugeben)

Lösung (zum Anzeigen hier klicken)

Auf der Seite gommehd.net kann man zu jedem Spielmodus Screenshots von allen Maps einsehen. Es gibt nur die FFA-Modi Hardcore, Build und Classic. Wenn man sich die Screenshots der Classic-Maps genauer anschaut, erkennt man bei der Map SURVIVALGAMES7 den Stand, bei dem die Hüte ausgestellt sind, in der Ferne. Somit ist die Flag flag{SURVIVALGAMES7}.

Hacker-Bild

Einfach

Wie lautet der volle Name des Autors? (z.B. flag{Rainer_Zufall})

Lösung (zum Anzeigen hier klicken)

Mit Websites wie images.google.com oder tineye.com kann man die Quelle von Bildern im Internet suchen. Wenn man das gegebene Bild dort hochlädt, findet man die Pixabay-Seite des Authors (https://pixabay.com/users/geralt-9301/). Im Profil ist der volle Name angegeben: flag{Gerd_Altmann}

AES

Mittel

Dieser String wurde mit der sehr bekannten Verschlüsselungsmethode AES (Advanced Encryption Standard) mit dem Cipher Mode ECB und dem Passwort _AES_Secret_Key_ (Key Size: 128 bits) verschlüsselt:

nMx2bTJUPfI860SKs/tStOLHoY+5fbeD0rvjCasRgTtLuTxUa7KrRSMikXNjGAj2O2COqLdhbF8UA66+xwYG0kIyhVyIDpQ/MJIrY4byPuj/x3jEl1R1aM2p+yfAOsW7

Lösung (zum Anzeigen hier klicken)

Diesen AES-verschlüsselten String kann man mit Online-Tools (z.B. https://www.devglan.com/online-tools/aes-encryption-decryption) entschlüsseln. Wenn als Secret-Key der oben genannte Schlüssel eingegeben wird, wird die Ausgabe in Base64 angezeigt. Der Knopf unter der Ausgabe wandelt diese in Plaintext um: flag{68747470733a2f2f7777772e796f75747562652e636f6d2f77617463683f763d6451773477395767586351}

IEC

Einfach

Wie viel Bits sind 1337MiB genau?
Lösung bitte im Format flag{12345678901} angeben.

Lösung (zum Anzeigen hier klicken)

Die Angabe ist in der Einheit Mebibyte. Ein Mebibit sind 10242 Bits. Ein Mebibyte sind 8 Mebibits. Somit ist das Ergebnis 10242 * 8 * 1337 = flag{11215568896}

Bonus

Extrem

Hier ist die Flag vielleicht nicht ganz so obvious wie bei der vorherigen Obv.-Challenge, da die JavaScript-Datei noch mehr obfuscated ist. Zum Ausführen kannst du deine Browser-Konsole oder NodeJS verwenden.

Da es sich um eine optionale Bonusaufgabe handelt, werden für diese Challenge keine Punkte vergeben. Für diese Aufgabe ist keine Lösung verfügbar.