
Në këtë artikull do të zgjidhim detyrën 25 nga faqja .
Informacion organizativVeçanërisht për ata që duan të mësojnë diçka të re dhe të zhvillohen në çdo nga fushat e sigurisë informative dhe kompjuterike, unë do të shkruaj dhe flas për këto kategori:
- PWN;
- kripografi (Crypto);
- teknologjitë rrjetore (Network);
- ingenieria e reversit (Reverse Engineering);
- steganografi (Stegano);
- kërkimi dhe shfrytëzimi i dobësive në WEB.
Përveç kësaj, do të ndaja përvojën time në kriminalistikën kompjuterike, analizën e malware-it dhe firmware-it, sulmet në rrjetet pa tela dhe rrjetet lokale, kryerjen e testeve të penetrimit dhe shkruarjen e eksploitëve.
Që të keni mundësi të mësoni për artikuj të rinj, softuer dhe informacion tjetër, kam krijuar dhe në fushën e Sigurisë Informatike dhe Kompjuterike. Gjithashtu, kërkesat, pyetjet, propozimet dhe rekomandimet tuaja .
Të gjitha informacionet ofrohen vetëm për qëllime edukative. Autori i këtij dokumenti nuk mban asnjë përgjegjësi për dëmin e shkaktuar ndonjëkujt nga përdorimi i njohurive dhe metodave të marra nga studimi i këtij dokumenti.
Zgjidhja e detyrës otp
Po vazhdojmë me kapitullin e dytë. Të them të drejtën, është më e vështirë se e para, por këtë herë nuk na ofrohet kodi burimor i programit. Mos harroni për diskutimet këtu (https://t.me/RalfHackerPublicChat) dhe këtu (https://t.me/RalfHackerChannel). Të fillojmë.
Klikoni në ikonën me emrin otp. Ne marrim adresën dhe portin për t'u lidhur.

Lidhen dhe shikoni në server.

Flaga që nuk mund ta lexojmë, programi dhe kodi i tij burimor. Le të shohim kodin burimor.

E çmontojmë atë. Programi pranon një fjalëkalim si argument.

Më pas, një 16-byte i rastësishëm ruhet në variablën otp.

Në dosjen tmp krijohet një skedë me një emër të rastësishëm (8 byte e para të otp) dhe në të shkruhen 8 byte të rastësishëm (8 byte e dyta të otp).

Për ndonjë arsye, lexohen vlerat nga skeda e krijuar dhe krahasohen me fjalëkalimin e dhënë.

Këtu ndodhet dhe vulnerabiliteti. Ai përfshin ruajtjen ndërmjetësore të numrit të gjeneruar në skedë. Ne mund të kufizojmë madhësinë e skedës, për shembull deri në 0, kështu që gjatë shkrimit dhe leximit me fjalëkalimin do të krahasohet 0. Këtë mund ta bëjmë kështu.
# ulimit -f 0 ![]()
Tani do të nisnim programin.
![]()
Marrim një gabim. Nuk ka problem, sepse mund ta trajtojmë me të njëjtin Python.
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')" ![]()
Marrim një flamur dhe 100 pikë të lehta. Dhe vazhdojmë: në artikullin e ardhshëm do të diskutojmë Web. Mund të na bashkoheni në .
Burimi: habr.com
