
U ovom članku ćemo riješiti 25. zadatak s web stranice .
Organizacione informacijePosebno za one koji žele da uče nešto novo i razvijaju se u bilo kojoj oblasti informatičke i računalne sigurnosti, pisat ću i govoriti o sljedećim kategorijama:
- PWN;
- kriptografija (Crypto);
- mrežne tehnologije (Network);
- reverse inženjering (Reverse Engineering);
- steganografija (Stegano);
- pronaći i eksploatirati WEB ranjivosti.
Uz to, podijelit ću svoje iskustvo u računalnoj forenzici, analizi malvera i firmware-a, napadima na bežične mreže i lokalne računarske mreže, provođenju pentestova i pisanju eksploita.
Da biste bili u toku s novim člancima, softverom i drugim informacijama, stvorio sam i u oblasti informacione i komunikacione bezbednosti. Takođe, vaše lične molbe, pitanja, predlozi i preporuke .
Sve informacije su predstavljene isključivo u obrazovne svrhe. Autor ovog dokumenta ne preuzima nikakvu odgovornost za bilo kakvu štetu koju bi neko mogao pretrpeti kao rezultat korišćenja znanja i metoda dobijenih proučavanjem ovog dokumenta.
Rješenje zadatka otp
Nastavljamo s drugim dijelom. Odmah da napomenem, složenije je od prvog, ali ovaj put ne daju izvorni kod programa. Ne zaboravite na raspravu ovdje(https://t.me/RalfHackerPublicChat) i ovdje (https://t.me/RalfHackerChannel). Započnimo.
Kliknite na ikonu s oznakom otp. Daju nam adresu i port za povezivanje.

Povezujemo se i istražujemo server.

Zastava koju ne možemo pročitati, program i njegov izvorni kod. Pogledajmo izvor.

Analiziramo ga. Program prihvaća lozinku kao argument.

Nakon toga se u varijablu otp pohranjuje nasumičnih 16 bajtova.

U mapi tmp se stvara datoteka s nasumičnim imenom (prvih 8 bajtova otp) i u nju se zapisuje nasumičnih 8 bajtova (drugih 8 bajtova otp).

Iz nekog razloga se čita vrijednost iz stvorene datoteke i uspoređuje se s unesenom lozinkom.

Ovdje se pojavljuje ranjivost. Ona se sastoji u privremenom spremanju generiranog broja u datoteku. Možemo ograničiti veličinu datoteke, na primjer na 0, tada će se pri zapisivanju i čitanju s lozinkom uspoređivati 0. To možemo učiniti ovako.
# ulimit -f 0 ![]()
Sada pokrećemo program.
![]()
Dobivamo grešku. Nije problem, može se obraditi pomoću iste Pythona.
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')" ![]()
Dobivamo zastavu i svojih laganih 100 bodova. Nastavljamo: u sljedećem članku dotaknut ćemo se Weba. Možete nam se pridružiti na .
Izvor: habr.com
