Решение на задача от pwnable.kr 25 — otp. Ограничение на файла в Linux

Решение на задача от pwnable.kr 25 — otp. Ограничение на файла в Linux
В тази статия ще решим 25-то задание от сайта pwnable.kr.

Организационна информацияСпециално за тези, които искат да научат нещо ново и да се развиват в която и да е сфера на информационната и компютърната сигурност, ще пиша и ще разказвам за следните категории:

  • PWN;
  • криптография (Crypto);
  • мрежови технологии (Network);
  • реверсно инженерство (Reverse Engineering);
  • стеганография (Stegano);
  • търсене и експлоатация на WEB-уязвимости.

В допълнение ще споделя своя опит в компютърната криминалистика, анализ на зловреден софтуер и фърмуер, атаки над безжични мрежи и локални компютърни мрежи, извършване на пентестове и писане на експлоити.

За да можете да получавате информация за нови статии, софтуер и други, създадох канал в Telegram и група за обсъждане на всякакви въпроси в областта на ИиКБ. Също така ще разгледам личните ви молби, въпроси, предложения и препоръки и ще отговоря на всички.

Цялата информация е предоставена изключително с образователна цел. Авторът на този документ не носи отговорност за каквито и да било щети, причинени на трети лица в резултат на използването на знания и методи, получени от изучаване на този документ.

Решение на заданието otp

Продължаваме с втората част. Ще кажа направо, че е по-сложно от първото, но този път не предоставят изходния код на програмата. Не забравяйте за обсъждането тук(https://t.me/RalfHackerPublicChat) и тук (https://t.me/RalfHackerChannel). Да започнем.

Натискаме на иконата с надпис otp. Получаваме адрес и порт за свързване.

Решение на задача от pwnable.kr 25 — otp. Ограничение на файла в Linux

Свързваме се и оглеждаме сървъра.

Решение на задача от pwnable.kr 25 — otp. Ограничение на файла в Linux

Флагът, който не можем да прочетем, програмата и нейният изходен код. Нека да погледнем изходния код.

Решение на задача от pwnable.kr 25 — otp. Ограничение на файла в Linux

Разглеждаме го. Програмата приема паролата като аргумент.

Решение на задача от pwnable.kr 25 — otp. Ограничение на файла в Linux

След това в променливата otp се запазват 16 случайни байта.

Решение на задача от pwnable.kr 25 — otp. Ограничение на файла в Linux

В папката tmp се създава файл със случайно име (първите 8 байта otp) и в него се записват 8 случайни байта (вторите 8 байта otp).

Решение на задача от pwnable.kr 25 — otp. Ограничение на файла в Linux

Някак си от създадения файл се чете стойност и се сравнява с въведената парола.

Решение на задача от pwnable.kr 25 — otp. Ограничение на файла в Linux

Тук и присъства уязвимост. Тя се състои в междинното запазване на генерираното число в файл. Можем да ограничим размера на файла, например до 0, тогава при запис и четене с паролата ще се сравнява 0. Може да стане така.

# ulimit -f 0

Решение на задача от pwnable.kr 25 — otp. Ограничение на файла в Linux

Сега стартираме програмата.

Решение на задача от pwnable.kr 25 — otp. Ограничение на файла в Linux

Получаваме грешка. Няма проблем, може да се обработи с помощта на същия питон.

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

Решение на задача от pwnable.kr 25 — otp. Ограничение на файла в Linux

Получаваме флага и своите 100 точки. И продължаваме: в следващата статия ще докоснем Web. Можете да се присъедините към нас в Telegram.

Източник: habr.com

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster