Writeup BOF: Админ - программист? (writeup)

Привет.
Идем дальше.

Смотрим в IDA main
IDA-main.png

На скриншоте все почищено, переименовано для лучшей читабельности.
Что видим - сть 2 однобайтовых массива по 32 элемента в каждом. Есть буффер в котором лежат bash комманды одна с начала, вторая с 31 элемента массива.
Для логина и пароля используется не безопасный пользовательский ввод. По условиям админской панели мы можем посмотреть список файлов в директории или посмотреть часть истории введенных команд. Но нам это не очень то и надо. Нам бы получить шелл, что бы получить флаг. Так же вывод команд из buffer происходит с помощью системного вызова (system).

Посмотрим на память
IDA-memory.png

Ага переменные лежат в стеке друг за другом, значит для записи нужной команды в buffer. нам надо переписать login и часть buffer с нужной нам командой.

Как происходит проверка введенных значений?
IDA-checks.png

Видим, что для логина проверяется только первые 4 символа, а для пароля 20. По двойному клику по логину и паролю узнаем чо за логин/пароль у нас есть.

Исходя из данных пишем нагрузку. Вот состояние памяти после нагрузки.
IDA-payload_tmp.png

Как видно из скриншота мы смогли переписать login и в начало buffer положили строку flag.

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

Что тут происходит. В нагрузке у нас логин, который мы нашли в коде, а пароль я затёр на скриншоте. Далее мы затираем оставшиеся данные в массиве login мусором и переписываем начало буфера с командами нашей командой - вызов шелла. В конце нагрузки ставится nullbyte, что бы строка дальше не использовалась. В админском меню выбираем "View the history of the user's oleg commands.", так как при таком выборе идет вызов system с командой из начала buffer.

PWNED
 
Привет, спасибо за райтап, но у меня почему-то и когда я сам пытался решить таск, и когда твой способ посмотрел после открытия панельки просто пустая строкая ничего не открывается ни шелл, вообщем ничего(
 
Привет, спасибо за райтап, но у меня почему-то и когда я сам пытался решить таск, и когда твой способ посмотрел после открытия панельки просто пустая строкая ничего не открывается ни шелл, вообщем ничего(
Привет. Мало информации для того, чтобы попробовать помочь.
Что запускаешь, как запускаешь?
Какие флаги для эксплоита?
Локальный файл или удаленный?
И т.д.
 
Привет. Мало информации для того, чтобы попробовать помочь.
Что запускаешь, как запускаешь?
Какие флаги для эксплоита?
Локальный файл или удаленный?
И т.д.
Такая же проблема, при работе с удаленным файлом через терминал или pwntools по врайтапу пустая строка в ответе(
 
Такая же проблема, при работе с удаленным файлом через терминал или pwntools по врайтапу пустая строка в ответе(
я не знаю как Вы генерировали и запускали эксплоит, тем более не знаю как вы в терминале смогли передать /bin/sh\x00, но что вы хотите увидеть в результате?
пустая строка для данного задания вполне себе закономерная вещь, вы же получаете удаленный шелл через бинарную уязвимость.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!