
In diesem Artikel werden wir die 25. Aufgabe von der Seite .
Organisatorische InformationenSpeziell fĂŒr diejenigen, die etwas Neues lernen und sich in verschiedenen Bereichen der Informations- und Computersicherheit weiterentwickeln möchten, werde ich ĂŒber die folgenden Kategorien schreiben und berichten:
- PWN;
- Kryptographie (Crypto);
- Netzwerktechnologien (Network);
- Reverse Engineering;
- Steganographie (Stegano);
- Suche und Ausnutzung von WEB-Schwachstellen.
DarĂŒber hinaus werde ich meine Erfahrungen in der Computerforensik, der Malware-Analyse und Firmware-Analysen, Angriffen auf drahtlose Netzwerke und lokale Netzwerke, der DurchfĂŒhrung von Penetrationstests und dem Schreiben von Exploits teilen.
Um Ihnen zu ermöglichen, ĂŒber neue Artikel, Software und andere Informationen informiert zu bleiben, habe ich und im Bereich der IuK-Sicherheit. Auch Ihre persönlichen Anfragen, Fragen, VorschlĂ€ge und Empfehlungen .
Alle Informationen werden ausschlieĂlich zu Bildungszwecken bereitgestellt. Der Autor dieses Dokuments ĂŒbernimmt keine Verantwortung fĂŒr SchĂ€den, die jemandem durch die Nutzung von Wissen und Methoden entstehen, die aus der Untersuchung dieses Dokuments gewonnen wurden.
Lösung der Aufgabe otp
Wir setzen den zweiten Abschnitt fort. Ich sage gleich, dass es schwieriger als der erste ist, aber dieses Mal stellen sie den Quellcode des Programms nicht zur VerfĂŒgung. Vergessen Sie hier die Diskussion nicht (https://t.me/RalfHackerPublicChat) und hier (https://t.me/RalfHackerChannel). Fangen wir an.
Wir klicken auf das Symbol mit der Bezeichnung otp. Uns wird die Adresse und der Port fĂŒr die Verbindung gegeben.

Wir verbinden uns und schauen uns auf dem Server um.

Das Flag, das wir nicht lesen können, das Programm und sein Quellcode. Lassen Sie uns den Quellcode ansehen.

Wir zerlegen ihn. Das Programm nimmt das Passwort als Argument.

Dann werden 16 zufÀllige Bytes in die Variable otp gespeichert.

Im Ordner tmp wird eine Datei mit einem zufÀlligen Namen (die ersten 8 Bytes otp) erstellt und darin werden 8 zufÀllige Bytes (die zweiten 8 Bytes otp) geschrieben.

Aus irgendeinem Grund wird der Wert der erstellten Datei gelesen und mit dem eingegebenen Passwort verglichen.

Hier liegt die Schwachstelle. Sie besteht in der zwischenzeitlichen Speicherung der generierten Zahl in einer Datei. Wir können die DateigröĂe beispielsweise auf 0 beschrĂ€nken, sodass bei der Aufnahme und dem Vergleich mit dem Passwort mit 0 verglichen wird. So kann das gemacht werden.
# ulimit -f 0 ![]()
Jetzt starten wir das Programm.
![]()
Wir erhalten einen Fehler. Kein Problem, denn wir können ihn mit dem gleichen Python verarbeiten.
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('.\/otp 0')" ![]()
Wir erhalten das Flag und unsere leichten 100 Punkte. Und wir machen weiter: Im nĂ€chsten Artikel werden wir das Web ansprechen. Sie können sich uns anschlieĂen unter .
Quelle: habr.com
