I собрал следующий код для уязвимости переполнения буфера на основе стека (CWE-121) с опцией -fno-stack-protector -no-pie и отключил ASLR. Я проверил значение адреса функции, которую хочу выполнить, поместить его в полезную нагрузку и успешно ввел функцию, но когда я попытался выполнить оболочку, я получил сообщение об ошибке, в котором ядро отказано сброшено. В чем причина этого? < /P>
Код: Выделить всё
#include
#include
#include
#include
void secret_shell() {
printf("You should not see this normally! Spawning shell...\n");
fflush(stdout);
system("/bin/sh");
}
void vulnerable() {
char buffer[64];
printf("Enter data: ");
fflush(stdout);
gets(buffer);
printf("You entered: %s\n", buffer);
}
< /code>
Затем, когда я запустил скомпилированную программу, я ввел следующую команду < /p>
./program < payload.txt
Подробнее здесь: https://stackoverflow.com/questions/796 ... stembin-sh
Мобильная версия