У овом чланку ћемо решити 25. задатак са сајта
Организационе информацијеПосебно за оне који желе да науче нешто ново и да се развију у било којој области информационе и рачунарске безбедности, писаћу и говорити о следећим категоријама:
- ПВН;
- криптографија (Црипто);
- мрежне технологије (Нетворк);
- обрнуто (Реверсе Енгинееринг);
- стеганографија (Стегано);
- претрага и искоришћавање ВЕБ рањивости.
Поред овога, поделићу своје искуство у компјутерској форензици, анализи малвера и фирмвера, нападима на бежичне мреже и локалне мреже, спровођењу пентестова и писању експлоата.
Да бисте могли да сазнате о новим чланцима, софтверу и другим информацијама, креирао сам
Све информације су дате само у образовне сврхе. Аутор овог документа не преузима никакву одговорност за било какву штету нанету било коме као резултат коришћења знања и метода добијених као резултат проучавања овог документа.
Решавање отп задатка
Наставимо са другим одељком. Одмах ћу рећи да је компликованији од првог, али овај пут не дају изворни код програма. Не заборавите на дискусију овде (хттпс://т.ме/РалфХацкерПублицЦхат) и овде (хттпс://т.ме/РалфХацкерЦханнел). Почнимо.
Кликните на икону са потписом отп. Добијамо адресу и порт за повезивање.
Повезујемо се и разгледамо сервер.
Застава коју не можемо да читамо, програм и његов изворни код. Погледајмо извор.
Хајде да то средимо. Програм узима лозинку као аргумент.
Затим, насумичних 16 бајтова се чува у променљивој отп.
Датотека са насумичним именом се креира у фасцикли тмп (првих 8 бајтова су отп) и у њу се уписује насумичних 8 бајтова (других 8 бајтова су отп).
Из неког разлога, вредност креиране датотеке се чита и упоређује са унетом лозинком.
Овде долази до рањивости. Састоји се од посредног чувања генерисаног броја у датотеку. Можемо ограничити величину датотеке, на пример, на 0, тада ће се приликом писања и читања 0 упоређивати са лозинком. Ово се може урадити овако.
# ulimit -f 0
Сада покренимо програм.
Добијамо грешку. Није важно, може се обрадити помоћу истог питона.
python -c "import os, signal; signal.signal(signal.SIGXFSZ, signal.SIG_IGN); os.system('./otp 0')"
Добијамо заставу и наших лаких 100 поена. И настављамо: у следећем чланку ћемо се дотакнути Веба. Можете нам се придружити на
Извор: ввв.хабр.цом