Я пытаюсь атаковать уязвимую программу с помощью уязвимого буфера с помощью execv ("/bin/bash", argv) ,
и argv имеет три элемента: "/bin /bash "," -p ", null . Надеюсь, я смогу открыть оболочку, делая это.
Код: Выделить всё
payload = (A * offset)
payload += addr_of_execv
payload += addr_of_exit
payload += addr_of_bin_bash
payload += addr_of_argv
payload += addr_of_bin_bash
payload += addr_of_dash_p
payload += addr_of_null
Теперь, через GDB, я могу убедиться, что все адреса правильно указывают на их строки или функции, за исключением addr_of_argv . Как объясняется ИИ, он должен указывать на его три элемента, однако, я понятия не имею, как рассчитать или найти этот адрес. И я очень смущен тем, как он может указывать на элементы. Уязвимая программа работает на Ubuntu 20.04 и составлена до 32 бит.
Подробнее здесь:
https://stackoverflow.com/questions/794 ... sing-execv