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

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

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

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

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

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

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

Решаване на задачата otp

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

Кликнете върху иконата с подпис otp. Дават ни се адрес и порт, към които да се свържем.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# ulimit -f 0

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

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

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

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

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

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

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

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

Добавяне на нов коментар