Chaospott Wiki

Wir sind da wat am dokumentieren dran...

Webseiten-Werkzeuge


ctf:writeups:protokoll25042024

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
ctf:writeups:protokoll25042024 [2024/06/21 15:29] – angelegt farawayctf:writeups:protokoll25042024 [2024/06/21 16:10] (aktuell) faraway
Zeile 1: Zeile 1:
 =====Protokoll vom 25.04.2024===== =====Protokoll vom 25.04.2024=====
 +
 +====gehackte Challenges====
 +https://picoctf.org/ \\
 +
 +=== picoCTF: Nice netcat ===
 +Die Webseite verweist auf einen netcat-Befehl \\
 +<code>
 +nc mercury.picoctf.net 35652
 +</code>
 +Die Ausführung der obigen Anweisung ergibt (auszugsweise) \\
 +{{:ctf:writeups:nice_netcat.png?400|}}
 +
 +Schnell kommt der Verdacht auf, dass es sich hier um Ascii-Werte handeln könnte.
 +Ein kleines Script zur Übersetzung \\
 +<code>
 + #! /usr/bin/python
 +
 + import sys
 +
 + flag = ""
 + for i in sys.argv[1:]:
 +         flag += chr(int(i))
 +
 + print(flag)
 +</code> \\
 +Das Script wird für alle ausführbar gemacht mit \\
 +<code>
 +chmod ugo+x translate
 +</code>
 +Eine Ausführung mit xargs ergibt \\
 +{{:ctf:writeups:nice_netcat2.png?400|}}
 +
 +
 +=== picoCTF: Static ain't always noise ===
 +Es wird eine Binary static gegeben. Mittels des strings-Befehls extrahiert man die Flag.
 +{{:ctf:writeups:static.png?400|}}
 +
 +=== picoCTF: Transformation ===
 +Es wird eine Textdatei enc und ein kleines Script gegeben 
 +<code>
 +enc ''.join([chr((ord(flag[i]) << 8) + ord(flag[i + 1])) for i in range(0, len(flag), 2)])
 +</code>
 +Die Datei enc ist eine UTF-8 codierte Textdatei ohne Zeilenterminierung, wie aus dem file-Befehl ersichtlich wird.
 +{{:ctf:writeups:transf.png?400|}}
 +
 +Die Datei enthält chinesische Schriftzeichen. \\
 +{{:ctf:writeups:transf2.png?400|}}
 +
 +UTF-8 ist ein multibyte Encoding, dass Schriftzeichen verschiedener Kulturen eine unterschiedliche Länge zuweist. Der Gedanke liegt nahe, dass das Script zur Verschlüsselung benutzt wurde. In dem Script wird die Flag in Blöcke von zwei nacheinanderfolgenden Buchstaben unterteilt, von denen der erste um 1 Byte geshiftet wird und auf den sich ergebenden Wert der Wert des zweiten Buchstaben aufaddiert wird.
 +Es gilt also dieses rückgängig zu machen. Dies wird von dem folgenden Script geleistet.
 +<code>
 +with open("enc") as file:
 +        encrypted=file.read()
 +
 +flag = ""
 +for char in encrypted:
 +        dchar1 = chr(ord(char) >> 8)
 +        dchar2 = chr(ord(char) & 0x00ff)
 +        flag += dchar1
 +        flag += dchar2
 +print(flag)
 +</code>
 +Die Ausgabe des Scriptes ist \\
 +{{:ctf:writeups:transf3.png?400|}}
 +
 +=== picoCTF: Python Wrangling ===
 +In dieser Aufgabe werden ein Python-Script, eine Textfile mit einem Passwort und eine verschlüsselte Textdatei gegeben. Man soll mittels des Scripts und Passwort die Flag entschlüsseln. \\
 +Lösung:\\
 +{{:ctf:writeups:pw.png?400|}}
ctf/writeups/protokoll25042024.1718983791.txt.gz · Zuletzt geändert: 2024/06/21 15:29 von faraway