Užduoties sprendimas su pwnable.kr 25 - otp. „Linux“ failo dydžio apribojimas

Užduoties sprendimas su pwnable.kr 25 - otp. „Linux“ failo dydžio apribojimas
Šiame straipsnyje išspręsime 25-ąją svetainės užduotį pwnable.kr.

organizacinė informacijaYpač tiems, kurie nori išmokti ką nors naujo ir tobulėti bet kurioje informacijos ir kompiuterių saugumo srityje, parašysiu ir kalbėsiu apie šias kategorijas:

  • PWN;
  • kriptografija (Crypto);
  • tinklo technologijos (Tinklas);
  • atvirkštinė (Reverse Engineering);
  • steganografija (Stegano);
  • WEB pažeidžiamumų paieška ir išnaudojimas.

Be to, pasidalinsiu savo patirtimi apie kompiuterių ekspertizę, kenkėjiškų programų ir programinės įrangos analizę, atakas prieš belaidžius tinklus ir vietinius tinklus, atliekant pentestus ir rašant išnaudojimus.

Kad galėtumėte sužinoti apie naujus straipsnius, programinę įrangą ir kitą informaciją, sukūriau Telegramos kanalas и grupėje aptarti bet kokius klausimus IIKB srityje. Taip pat jūsų asmeniniai prašymai, klausimai, pasiūlymai ir rekomendacijos Pažiūrėsiu ir visiems atsakysiu..

Visa informacija pateikiama tik švietimo tikslais. Šio dokumento autorius neprisiima atsakomybės už bet kokią žalą, padarytą niekam dėl žinių ir metodų, gautų studijuojant šį dokumentą, panaudojimo.

OTP užduoties sprendimas

Tęskime antrąją dalį. Iš karto pasakysiu, kad jis sudėtingesnis nei pirmasis, tačiau šį kartą jie nepateikia programos šaltinio kodo. Nepamirškite apie diskusiją čia (https://t.me/RalfHackerPublicChat) ir čia (https://t.me/RalfHackerChannel). Pradėkime.

Spustelėkite piktogramą su parašu otp. Mums suteikiamas adresas ir prievadas, prie kurio galime prisijungti.

Užduoties sprendimas su pwnable.kr 25 - otp. „Linux“ failo dydžio apribojimas

Prisijungiame ir apžiūrime serverį.

Užduoties sprendimas su pwnable.kr 25 - otp. „Linux“ failo dydžio apribojimas

Vėliava, kurios negalime perskaityti, programa ir jos šaltinio kodas. Pažiūrėkime į šaltinį.

Užduoties sprendimas su pwnable.kr 25 - otp. „Linux“ failo dydžio apribojimas

Sutvarkykime. Programa naudoja slaptažodį kaip argumentą.

Užduoties sprendimas su pwnable.kr 25 - otp. „Linux“ failo dydžio apribojimas

Tada atsitiktiniai 16 baitų saugomi otp kintamajame.

Užduoties sprendimas su pwnable.kr 25 - otp. „Linux“ failo dydžio apribojimas

Aplanke tmp sukuriamas failas atsitiktiniu pavadinimu (pirmieji 8 baitai yra otp) ir į jį įrašomi atsitiktiniai 8 baitai (antrieji 8 baitai yra otp).

Užduoties sprendimas su pwnable.kr 25 - otp. „Linux“ failo dydžio apribojimas

Kažkodėl nuskaitoma sukurto failo reikšmė ir lyginama su įvestu slaptažodžiu.

Užduoties sprendimas su pwnable.kr 25 - otp. „Linux“ failo dydžio apribojimas

Štai čia ir atsiranda pažeidžiamumas. Jį sudaro tarpinis sugeneruoto numerio įrašymas į failą. Failo dydį galime apriboti, pavyzdžiui, iki 0, tada rašant ir skaitant su slaptažodžiu bus lyginamas 0. Tai galima padaryti taip.

# ulimit -f 0

Užduoties sprendimas su pwnable.kr 25 - otp. „Linux“ failo dydžio apribojimas

Dabar paleiskite programą.

Užduoties sprendimas su pwnable.kr 25 - otp. „Linux“ failo dydžio apribojimas

Gauname klaidą. Nesvarbu, jį galima apdoroti naudojant tą patį python.

python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')" 

Užduoties sprendimas su pwnable.kr 25 - otp. „Linux“ failo dydžio apribojimas

Gauname vėliavą ir mūsų lengvus 100 taškų. Ir mes tęsiame: kitame straipsnyje paliesime žiniatinklį. Prie mūsų galite prisijungti adresu Telegram.

Šaltinis: www.habr.com

Добавить комментарий