Как перебирать адреса памяти в скрипте Python для эксплойта return-to-libc - PullRequest
0 голосов
/ 21 декабря 2018

Я должен написать эксплойт с возвратом в libc для курса по безопасному программному обеспечению.Атака использует простую программу на языке c с помощью переполнения буфера.Размер буфера составляет 666. Программа принимает пользовательский ввод и записывает его в этот буфер.Мне удалось использовать программу, предоставив в качестве входных данных что-то вроде того, что генерируется скриптом Python ниже.

Первый адрес - это адрес системной функции в libc, второй - выход, а третий - в переменной окружения, содержащей путь оболочки.

Адрес средыпеременная не так стабильна.Время от времени он меняется, поэтому мне нужно использовать грубую силу.Есть ли простой способ зацикливать выполнение программ, перебирая адреса памяти в скрипте python или любой другой эквивалентной альтернативе?

Я новичок в командной строке Linux и использовании.

$ /path/to/vulnerable/c_program $(python -c 'print "A"*678 + "\x10\x23\xe6\xb7" + "\x60\x52\xe5\xb7" + "\xcc\xf8\xff\xbf"')
...