
Në këtë artikull do të zgjidhim detyrën e 25-të nga siti .
Informacion organizativNë veçanti për ata që dëshirojnë të mësojnë diçka të re dhe të zhvillohen në cilindo nga fushat e sigurisë informacionit dhe kompjuterike, unë do të shkruaj dhe tregoj për kategoritë e mëposhtme:
- PWN;
- kriptografia (Crypto);
- teknologjitë rrjetore (Network);
- riversimi (Reverse Engineering);
- steganografia (Stegano);
- kërkimi dhe shfrytëzimi i dobësive WEB.
Përveç kësaj, do të ndaj përvojën time në kriminalistikën informatike, analizën e malware dhe firmware, sulmet në rrjetet wireless dhe rrjetet lokale, kryerjen e testeve të penetrimit dhe shkruarjen e eksploiteve.
Që të mund të mësoni për artikuj të rinj, softuer dhe informacion tjetër, kam krijuar dhe në fushën e SiIK. Gjithashtu, kërkesat tuaja personale, pyetje, propozime dhe rekomandime .
Të gjitha informacionet janë paraqitur ekskluzivisht për qëllime edukative. Autori i këtij dokumenti nuk merr asnjë përgjegjësi për ndonjë dëm të shkaktuar dikujt si pasojë e përdorimit të njohurive dhe metodave që rezultojnë nga studimi i këtij dokumenti.
Zgjidhja e detyrës otp
Të vazhdojmë me seksionin e dytë. Do ta them menjëherë se është më e vështirë se e para, por kësaj here na ofrohet kodi burimor i programit. Mos harroni për diskutimin këtu (https://t.me/RalfHackerPublicChat) dhe këtu (https://t.me/RalfHackerChannel). Le të fillojmë.
Klikojmë në ikonën me titull otp. Na jepet adresa dhe porta për lidhje.

Lidhemi dhe shohim rreth serverit.

Flagu që nuk mund ta lexojmë, programi dhe kodi burimor i tij. Le të shqyrtojmë burimin.

E analizojmë. Programi merr si argument fjalëkalimin.

Më pas në variablën otp ruhet një numër rastësor prej 16 bajtësh.

Në dosjen tmp krijohet një skedar me emër të rastësishëm (8 bajtët e parë të otp) dhe në të shkruhen 8 bajt të rastësishëm (8 bajtët e dytë të otp).

Për ndonjë arsye, vlera e skedarit të krijuar lexon dhe krahasohet me fjalëkalimin e futur.

Këtu është edhe vulnerabiliteti. Ai qëndron në ruajtjen ndërmjetësore të numrit të gjeneruar në skedar. Ne mund ta kufizojmë madhësinë e skedarit, për shembull deri në 0, kështu që gjatë shkruajtjes dhe leximit me fjalëkalimin do të krahasohet 0. Kjo mund të bëhet kështu.
# ulimit -f 0 ![]()
Tani le të nisim programin.
![]()
Marrim një gabim. Nuk është problem, pasi mund ta trajtojmë atë me ndihmën e atij python-it.
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')" ![]()
Marrim flagun dhe lehtësisht 100 pikë. Dhe vazhdojmë: në artikullin e ardhshëm do të trajtojmë Web-in. Ju mund të na bashkoheni në .
Burimi: habr.com
