
Selles artiklis lahendame 25. ülesande saidilt .
Organisatsiooniline teaveEriti nendele, kes soovivad õppida midagi uut ja areneda igas infotehnoloogia ja arvutiteabe valdkonnas, kavatsen kirjutada ja rääkida järgmistest kategooriatest:
- PWN;
- krüptograafia (Crypto);
- võrgutehnoloogiad (Network);
- tagasipöördumine (Reverse Engineering);
- steganograafia (Stegano);
- WEB-haavatavuste otsimine ja eksploiteerimine.
Lisaks jagan oma kogemusi arvutikriminaalsuses, pahavara ja püsivara analüüsimisel, juhtmevabade võrkude ja kohalike arvutivõrkude ründamisel, pentestide läbiviimisel ja exploiteerimise kirjutamisel.
Kuna soovite saada teavet uute artiklite, tarkvara ja muu kohta, olen loonud ja infotehnoloogia ja küberturvalisuse valdkonnas. Samuti vaatan teie isiklikud soovid, küsimused, ettepanekud ja soovitused .
Kogu teave on esitatud üksnes hariduslikel eesmärkidel. Selle dokumendi autor ei vastuta mingite kahjustuste eest, mis võivad kellelegi tekkida selle dokumendi uurimise käigus saadud teadmiste ja meetodite kasutamisest.
Ülesande otp lahendus
Jätkame teise osa juurde. Ütleksin kohe, et see on keerulisem kui esimene, kuid seekord ei pakuta meile programmi lähtekoodi. Ärge unustage arutelu siin (https://t.me/RalfHackerPublicChat) ja siin (https://t.me/RalfHackerChannel). Alustame.
Klõpsame ikoonil, mille peal on kirjutatud otp. Meile antakse aadress ja port ühendamiseks.

Ühendame ja vaatame serveris ringi.

Lipp, mida me ei saa lugeda, programm ja selle lähtekood. Vaadakem lähtekoodi.

Analüüsime seda. Programm võtab argumendiks parooli.

Seejärel salvestatakse muutuja otp juhuslikud 16 bitti.

Kaasaskantavas tmp kaustas luuakse faili juhusliku nimega (esimese 8 bitti otp) ja sinna salvestatakse juhuslikud 8 bitti (teised 8 bitti otp).

Millekski loetakse loodud failist väärtus ja võrreldakse sisestatud parooliga.

Siin ongi haavatavus. See seisneb genereeritud arvu vahepealses salvestamises faili. Me saame faili suurust piirata, näiteks 0-ni, siis võrreldakse parooli kirjutamisel ja lugemisel 0-ega. Seda saab teha nii.
# ulimit -f 0 ![]()
Nüüd käivitame programmi.
![]()
Saame veateate. Pole hullu, see on käsitletav sama Pythoniga.
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')" ![]()
Saame lipu ja kerged 100 punkti. Jätkame: järgmises artiklis käsitleme Webi. Liitu meiega .
Allikas: habr.com
