HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Этичный хакинг или пентестинг > Задания/Квесты/CTF/Конкурсы
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 13.07.2023, 15:39
yetiraki
Новичок
Регистрация: 07.02.2023
Сообщений: 0
С нами: 1719376

Репутация: 0
По умолчанию

Всем привет.

Решил переключиться на pwn, попробовать, что это и как. Оказалось интересно.
Приступим. Скачиваем архив, unzip его и в IDA.

В иде смотрим функцию main, жмем F5 для генерации псевдокода.



Что мы видим а данном скриншоте, а то, что у нас есть флаг внутри (т.к. приложуха локальная, то и флаг в ней фейковый, но в реальной приложухе должен быть реальный флаг).
Далее мы видим что есть вывод текста с последующим запросом ответа от пользователя с помощью scanf (int32 в hex виде) и без ограничения и проверок количества полученных символов, что может привести к преполнению буфера или перетеранию переменных по стеку.

Далее видим, что есть вызов функции которая как-то проверяет введенные пользователем значения и если все успешно введено, то делается инкремент balls (наверное баллам). Внутри этой функции подсчитывается куб по полученном значению.



Что же дальше? Дальше мы видим, что бы получить флаг у нас должно быть 300 баллов, но цикл с расчетами у нас рассчитан всего на 100 баллов. Как же нам честным получить флаг? Азино какое-то =)

Штош, значит будем пробовать нечестным путём выиграть в нечестной игре. Смотрим как у нас лежат переменные.



Видим, что переменные идут друг за другом - значит можно их переписать (т.к. помним про scanf)
Значит надо подгадывать нагрузку.

Пробуем в отладке на каждой итерации увеличивать количество символов в нашем ответе и смотрим как меняется память. В итоге получаем нагрузку ААAAAAAAAA и в balls у нас попала ерунда





Но нам там ерунда не нужна, нам там надо 300 (не забываем про hex, 300 будет 012C)
Делаем нагрузку 012CAAAAAAAA и получаем в balls 300. Но каждый раз так в цикле делать - можно очень сильно устать, поэтому обратимся к автоматизации. PWN (библиотека?) для питона
Она позволяет делать многое, но пока делаем для локальной приложухи.

pwn template ./exam
Это сделает нам сплоит для того, что бы внутри мы уже внедряли свою нагрузку в автоматическом режиме.
Во время работы с локальной приложухой сплоит работал успешно, однако как только я подключился к удаленной - перестал, пришлось отлаживать и менять некоторые вещи и делать ветвление для локальной версии и для удаленной, на будущее, чтобы не забыть.
Запуск сплоита для локальной приложухи ./exploit.py LOCAL NOASLR
Для удаленной ./exploit.py REMOTE DEBUG

Выкладывание кода для копипасты сюда будет равносильно слитию флага, то я выложу только скриншот.



PWNED

PS
Спасибо участнику комьюнити ROP за указанное направление что почитать.
 
Ответить с цитированием
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.