• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Writeup Код ракушки (writeup)

yetiraki

Green Team
07.02.2023
74
120
Давно не писал.
Решил выложить другой вариант прохождения таска.

Открываем IDA и смотрим декомпилированный код функции main.
01_IDA_main.PNG


Видим, что читаем 85 байт в переменную mem. Посмотрим на нее:

02_IDA_bss_mem.PNG


Видим, что она находится в _bss сегменте (неинициализированные переменные). Видим, что сегмент этот на чтение/запись только, хотя название таска и категории какбы намекает, что нушно шелкодить.
Возвращаемся и смотрим снова в main. Вызывается какая-то странная фнукция, а дальше идет запуск кода из mem, но как это может запуститься из RW сегмента?
Смотрим функцию change_page_permissions_of_address:

03_IDA_mprotect.PNG

Интересно... Гуглим, читаем что такое mprotect и как оно работает. (man mprotect). Понимаем, что меняются разрешения для этой памяти.
Узнаем, что PROT_READ = 1 PROT_WRITE = 2 PROT_EXEC = 4, тем самым получается, что у нас тут память эта станет выполняемой, это уже годится.

Так как у нас pwn, то будем использовать pwn.
04_exploit.png


Что делает скрипт:
1. Генерирует стандартный шеллкод.
2. Ждет "приветствия" от проги (локально или удаленно)
3. Посылает шелкод
4. Переходим в интерактивный режим, что бы можно было вводить команды.

В скрипте указаны команды, которые помогут быстро найти флаг =))

PWNED
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Курс AD