Šiame straipsnyje išspręsime 25-ąją svetainės užduotį
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
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.
Prisijungiame ir apžiūrime serverį.
Vėliava, kurios negalime perskaityti, programa ir jos šaltinio kodas. Pažiūrėkime į šaltinį.
Sutvarkykime. Programa naudoja slaptažodį kaip argumentą.
Tada atsitiktiniai 16 baitų saugomi otp kintamajame.
Aplanke tmp sukuriamas failas atsitiktiniu pavadinimu (pirmieji 8 baitai yra otp) ir į jį įrašomi atsitiktiniai 8 baitai (antrieji 8 baitai yra otp).
Kažkodėl nuskaitoma sukurto failo reikšmė ir lyginama su įvestu slaptažodžiu.
Š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
Dabar paleiskite programą.
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')"
Gauname vėliavą ir mūsų lengvus 100 taškų. Ir mes tęsiame: kitame straipsnyje paliesime žiniatinklį. Prie mūsų galite prisijungti adresu
Šaltinis: www.habr.com