Zgjidhja e detyrĂ«s me pwnable.kr 25 — otp. Kufizimi i madhĂ«sisĂ« sĂ« skedarit nĂ« Linux

Zgjidhja e detyrĂ«s me pwnable.kr 25 — otp. Kufizimi i madhĂ«sisĂ« sĂ« skedarit nĂ« Linux
Në këtë artikull do të zgjidhim detyrën 25 nga faqja pwnable.kr.

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 kanalin në Telegram dhe një grup për diskutime për çdo pyetje në fushën e Sigurisë Informatike dhe Kompjuterike. Gjithashtu, kërkesat, pyetjet, propozimet dhe rekomandimet tuaja do t'i shqyrtoj personalisht dhe do t'u përgjigjem të gjithëve..

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.

Zgjidhja e detyrĂ«s me pwnable.kr 25 — otp. Kufizimi i madhĂ«sisĂ« sĂ« skedarit nĂ« Linux

Lidhen dhe shikoni në server.

Zgjidhja e detyrĂ«s me pwnable.kr 25 — otp. Kufizimi i madhĂ«sisĂ« sĂ« skedarit nĂ« Linux

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

Zgjidhja e detyrĂ«s me pwnable.kr 25 — otp. Kufizimi i madhĂ«sisĂ« sĂ« skedarit nĂ« Linux

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

Zgjidhja e detyrĂ«s me pwnable.kr 25 — otp. Kufizimi i madhĂ«sisĂ« sĂ« skedarit nĂ« Linux

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

Zgjidhja e detyrĂ«s me pwnable.kr 25 — otp. Kufizimi i madhĂ«sisĂ« sĂ« skedarit nĂ« Linux

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).

Zgjidhja e detyrĂ«s me pwnable.kr 25 — otp. Kufizimi i madhĂ«sisĂ« sĂ« skedarit nĂ« Linux

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

Zgjidhja e detyrĂ«s me pwnable.kr 25 — otp. Kufizimi i madhĂ«sisĂ« sĂ« skedarit nĂ« Linux

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

Zgjidhja e detyrĂ«s me pwnable.kr 25 — otp. Kufizimi i madhĂ«sisĂ« sĂ« skedarit nĂ« Linux

Tani do të nisnim programin.

Zgjidhja e detyrĂ«s me pwnable.kr 25 — otp. Kufizimi i madhĂ«sisĂ« sĂ« skedarit nĂ« Linux

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')" 

Zgjidhja e detyrĂ«s me pwnable.kr 25 — otp. Kufizimi i madhĂ«sisĂ« sĂ« skedarit nĂ« Linux

Marrim një flamur dhe 100 pikë të lehta. Dhe vazhdojmë: në artikullin e ardhshëm do të diskutojmë Web. Mund të na bashkoheni në Telegram.

Burimi: habr.com

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster