
In diesem Artikel werden wir die 25. Aufgabe von der Seite lösen .
OrganisationsinformationenSpeziell fĂŒr diejenigen, die 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 (Reverse);
- Steganographie (Stegano);
- Suche und Ausnutzung von WEB-Schwachstellen.
ZusĂ€tzlich teile ich meine Erfahrungen in Computerforensik, Malware-Analyse und Firmware-Analyse, Angriffen auf drahtlose Netzwerke und lokale Netzwerke, DurchfĂŒhrung von Penetrationstests sowie beim Schreiben von Exploits.
Um Sie ĂŒber neue Artikel, Software und weitere Informationen auf dem Laufenden zu halten, habe ich und im Bereich IuKBS gegrĂŒndet. 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 einer Person durch die Nutzung des Wissens und der Methoden, die aus dem Studium dieses Dokuments gewonnen wurden, entstehen.
Lösung der Aufgabe otp
Wir setzen mit dem zweiten Teil fort. Ich sage gleich, dass es schwieriger als der erste ist, aber dieses Mal wird der Quellcode des Programms nicht bereitgestellt. Vergessen Sie nicht, hier (https://t.me/RalfHackerPublicChat) und hier (https://t.me/RalfHackerChannel) die Diskussion zu fĂŒhren. Lass uns anfangen.
Klicken Sie auf das Symbol mit der Aufschrift otp. Uns werden die Adresse und der Port fĂŒr die Verbindung bereitgestellt.

Wir stellen eine Verbindung her und erkunden den Server.

Die Flagge, die wir nicht lesen können, das Programm und dessen Quellcode. Lassen Sie uns den Quellcode ansehen.

Wir analysieren es. Das Programm akzeptiert das Passwort als Argument.

Dann wird eine zufÀllige 16 Byte lange Zahl in die Variable otp gespeichert.

Im Ordner tmp wird eine Datei mit einem zufÀlligen Namen (den ersten 8 Bytes von otp) erstellt, und es werden zufÀllige 8 Bytes (die zweiten 8 Bytes von otp) hineingeschrieben.

Wozu der erstellte Datei ein Wert entnommen und mit dem eingegebenen Passwort verglichen wird.

Hier besteht eine SicherheitsanfĂ€lligkeit. Sie liegt im vorĂŒbergehenden Speichern der generierten Zahl in einer Datei. Wir können die DateigröĂe auf beispielsweise 0 beschrĂ€nken, sodass beim Schreiben und Lesen mit dem Passwort 0 verglichen wird. So lĂ€sst sich das umsetzen.
# ulimit -f 0 ![]()
Jetzt starten wir das Programm.
![]()
Wir erhalten einen Fehler. Kein Problem, denn diesen können wir mit Python behandeln.
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 ĂŒber das Web sprechen. Sie können sich uns anschlieĂen in .
Quelle: habr.com
