Недавно я провел несколько экспериментов по атаке Return -to -libc на основе статьи . Обход не -исполняемого -стека во время эксплуатации с помощью возврата -в -libcс моей Ubuntu11.10.
Перед своим экспериментом я закрыл ALSR.
Согласно документу, я могу найти адрес переменной окружения SHELL="/bin/bash" в gdb (использовать gdb для отладки программы, которую я хочу атаковать):
Но я обнаружил, что этот адрес неправильный , когда я пытаюсь использовать его для эксперимента Return -to -libc.
Затем я пишу простую программу для получения адреса переменной окружения :
. Когда я запускаю эту программу в Терминале, я получаю правильный адрес:
С этим адресом я могу провести атаку.
Я также нахожу соответствующий вопрос об этом. Но ответы на самом деле не имеют смысла (второй может быть лучше ).
Просто расскажите мне некоторые подробности об этом, пожалуйста.