Вызывает переполнение буфера, используя программу Python в качестве аргумента с адресом, дополненным нулями - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь вызвать переполнение буфера, распечатывая адрес в шестнадцатеричном формате на терминал, чтобы служить входом для уязвимой функции.Я дополняю данные, которые нужно записать, 0x01, а затем добавляю к нему адрес вредоносной функции в точке, где она будет перезаписывать указатель возврата.

Проблема, с которой я столкнулся, заключается в том, что \ x00 не добавляется к адресу и по какой-то причине использует другой адрес.Я хочу, чтобы это был адрес:

0x784007ad

Но он возвращается на другой адрес:

0x004007b6

Ниже приведен код, который я написал:

address = "\xad\x07\x40\x00"
print("\x01" * 28 + address)

И я подозреваю, что он искажает последний байт, потому что \ x00 не записывается и использует следующие байты в памяти.

Он не может просто напечатать строку, потому что она будет преобразована в шестнадцатеричное значениеи попробуйте вернуться по этому адресу вместо адреса, который я пытаюсь вернуть как шестнадцатеричный в Python в форме с прямым порядком байтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...