На скриншоте все почищено, переименовано для лучшей читабельности.
Что видим - сть 2 однобайтовых массива по 32 элемента в каждом. Есть буффер в котором лежат bash комманды одна с начала, вторая с 31 элемента массива.
Для логина и пароля используется не безопасный пользовательский ввод. По условиям админской панели мы можем посмотреть список файлов в директории или посмотреть часть истории введенных команд. Но нам это не очень то и надо. Нам бы получить шелл, что бы получить флаг. Так же вывод команд из buffer происходит с помощью системного вызова (system).
Посмотрим на память
Ага переменные лежат в стеке друг за другом, значит для записи нужной команды в buffer. нам надо переписать login и часть buffer с нужной нам командой.
Как происходит проверка введенных значений?
Видим, что для логина проверяется только первые 4 символа, а для пароля 20. По двойному клику по логину и паролю узнаем чо за логин/пароль у нас есть.
Исходя из данных пишем нагрузку. Вот состояние памяти после нагрузки.
Как видно из скриншота мы смогли переписать login и в начало buffer положили строку flag.
Так как у нас pwn, то будем использовать pwn.
Что тут происходит. В нагрузке у нас логин, который мы нашли в коде, а пароль я затёр на скриншоте. Далее мы затираем оставшиеся данные в массиве login мусором и переписываем начало буфера с командами нашей командой - вызов шелла. В конце нагрузки ставится nullbyte, что бы строка дальше не использовалась. В админском меню выбираем "View the history of the user's oleg commands.", так как при таком выборе идет вызов system с командой из начала buffer.
Привет, спасибо за райтап, но у меня почему-то и когда я сам пытался решить таск, и когда твой способ посмотрел после открытия панельки просто пустая строкая ничего не открывается ни шелл, вообщем ничего(
Привет, спасибо за райтап, но у меня почему-то и когда я сам пытался решить таск, и когда твой способ посмотрел после открытия панельки просто пустая строкая ничего не открывается ни шелл, вообщем ничего(
Привет. Мало информации для того, чтобы попробовать помочь.
Что запускаешь, как запускаешь?
Какие флаги для эксплоита?
Локальный файл или удаленный?
И т.д.