CTF 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
 

Invis-

New member
10.12.2022
2
0
BIT
1
Привет, спасибо за райтап, но у меня почему-то и когда я сам пытался решить таск, и когда твой способ посмотрел после открытия панельки просто пустая строкая ничего не открывается ни шелл, вообщем ничего(
 

yetiraki

Green Team
07.02.2023
63
108
BIT
441
Привет, спасибо за райтап, но у меня почему-то и когда я сам пытался решить таск, и когда твой способ посмотрел после открытия панельки просто пустая строкая ничего не открывается ни шелл, вообщем ничего(
Привет. Мало информации для того, чтобы попробовать помочь.
Что запускаешь, как запускаешь?
Какие флаги для эксплоита?
Локальный файл или удаленный?
И т.д.
 

Per4ik1337

New member
18.08.2023
1
0
BIT
78
Привет. Мало информации для того, чтобы попробовать помочь.
Что запускаешь, как запускаешь?
Какие флаги для эксплоита?
Локальный файл или удаленный?
И т.д.
Такая же проблема, при работе с удаленным файлом через терминал или pwntools по врайтапу пустая строка в ответе(
 

yetiraki

Green Team
07.02.2023
63
108
BIT
441
Такая же проблема, при работе с удаленным файлом через терминал или pwntools по врайтапу пустая строка в ответе(
я не знаю как Вы генерировали и запускали эксплоит, тем более не знаю как вы в терминале смогли передать /bin/sh\x00, но что вы хотите увидеть в результате?
пустая строка для данного задания вполне себе закономерная вещь, вы же получаете удаленный шелл через бинарную уязвимость.
 
Мы в соцсетях:

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