Любопытная вещь при поиске адреса переменной окружения в gdb

Недавно я провел несколько экспериментов по атаке Return -to -libc на основе статьи . Обход не -исполняемого -стека во время эксплуатации с помощью возврата -в -libcс моей Ubuntu11.10.

Перед своим экспериментом я закрыл ALSR.

Согласно документу, я могу найти адрес переменной окружения SHELL="/bin/bash" в gdb (использовать gdb для отладки программы, которую я хочу атаковать):

enter image description here
enter image description here

Но я обнаружил, что этот адрес неправильный , когда я пытаюсь использовать его для эксперимента Return -to -libc.

Затем я пишу простую программу для получения адреса переменной окружения :

enter image description here

. Когда я запускаю эту программу в Терминале, я получаю правильный адрес:

enter image description here

С этим адресом я могу провести атаку.

Я также нахожу соответствующий вопрос об этом. Но ответы на самом деле не имеют смысла (второй может быть лучше ).

Просто расскажите мне некоторые подробности об этом, пожалуйста.

6
задан Community 23 May 2017 в 12:02
поделиться