![]() |
Давно не писал.
Решил выложить другой вариант прохождения таска. Открываем IDA и смотрим декомпилированный код функции main. https://forum.antichat.xyz/attachmen...376f2b4188.png Видим, что читаем 85 байт в переменную mem. Посмотрим на нее: https://forum.antichat.xyz/attachmen...3610a23710.png Видим, что она находится в _bss сегменте (неинициализированные переменные). Видим, что сегмент этот на чтение/запись только, хотя название таска и категории какбы намекает, что нушно шелкодить. Возвращаемся и смотрим снова в main. Вызывается какая-то странная фнукция, а дальше идет запуск кода из mem, но как это может запуститься из RW сегмента? Смотрим функцию change_page_permissions_of_address: https://forum.antichat.xyz/attachmen...275949cd7b.png Интересно... Гуглим, читаем что такое mprotect и как оно работает. (man mprotect). Понимаем, что меняются разрешения для этой памяти. Узнаем, что PROT_READ = 1 PROT_WRITE = 2 PROT_EXEC = 4, тем самым получается, что у нас тут память эта станет выполняемой, это уже годится. Так как у нас pwn, то будем использовать pwn. https://forum.antichat.xyz/attachmen...fd031561d1.png Что делает скрипт: 1. Генерирует стандартный шеллкод. 2. Ждет "приветствия" от проги (локально или удаленно) 3. Посылает шелкод 4. Переходим в интерактивный режим, что бы можно было вводить команды. В скрипте указаны команды, которые помогут быстро найти флаг =)) PWNED |
| Время: 19:24 |