
V tem članku bomo rešili 25. nalogo s spletne strani .
Organizacione informacijePosebno za one koji žele saznati nešto novo i razvijati se u bilo kojoj od oblasti informacionih i računarskih sigurnosti, pisat ću i pričati o sljedećim kategorijama:
- PWN;
- kriptografija (Crypto);
- mrežne tehnologije (Network);
- obrnuto inženjerstvo (Reverse Engineering);
- steganografija (Stegano);
- traženje i eksploatacija WEB-ranljivosti.
Pored toga, podijelit ću svoje iskustvo u računarstvu, analizi malvara i firmware-a, napadima na bežične mreže i lokalne računarske mreže, provođenju pentestova i pisanju eksploita.
Kako biste mogli saznati o novim člancima, softveru i drugim informacijama, stvorio sam in u oblasti IiiK. Takođe, vaše lične molbe, pitanja, prijedlozi i preporuke .
Sve informacije su predstavljene isključivo u obrazovne svrhe. Autor ovog dokumenta ne snosi nikakvu odgovornost za bilo kakvu štetu koja može nastati kao rezultat korišćenja znanja i metoda stečenih proučavanjem ovog dokumenta.
Rešitev naloge otp
Nadaljujemo z drugim delom. Takoj bom povedal, da je težji od prvega, vendar tokrat ne nudijo izvorne kode programa. Ne pozabite na razpravo tukaj (https://t.me/RalfHackerPublicChat) in tukaj (https://t.me/RalfHackerChannel). Začnimo.
Kliknemo na ikono z oznako otp. Pridobimo naslov in vrata za povezavo.

Povežemo se in si ogledamo strežnik.

Zastavo, ki je ne moremo prebrati, program in njegova izvorna koda. Oglejmo si izvorno kodo.

Razberimo ga. Program sprejema geslo kot argument.

Nato se v spremenljivko otp shrani naključnih 16 bajtov.

V mapi tmp se ustvari datoteka z naključnim imenom (prvih 8 bajtov otp) in vanjo se zapiše naključnih 8 bajtov (drugih 8 bajtov otp).

Nekako se prebere vrednost te ustvarjene datoteke in se primerja z vnešenim geslom.

Tukaj je prisotna ranljivost. Ta je v vmesnem shranjevanju generirane številke v datoteko. Lahko omejimo velikost datoteke, na primer na 0, tako da bo pri zapisovanju in branju z geslom prišlo do primerjave z 0. To lahko storimo tako.
# ulimit -f 0 ![]()
Zdaj zaženimo program.
![]()
Prejeli smo napako. Nič hudega, saj jo lahko obdelamo s pomočjo istega Pythona.
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')" ![]()
Prejeli smo zastavo in lahkih 100 točk. Nato nadaljujemo: v naslednjem članku se bomo dotaknili Weba. Pridružite se nam v .
Izvor: habr.com
