Pointer Redirecting
Вказівники рядків
Якщо виклик функції буде використовувати адресу рядка, що знаходиться в стеку, можна зловживати переповненням буфера, щоб перезаписати цю адресу і помістити адресу іншого рядка всередині бінарного файлу.
Якщо, наприклад, виклик функції system
буде використовувати адресу рядка для виконання команди, зловмисник може помістити адресу іншого рядка в стек, export PATH=.:$PATH
і створити в поточному каталозі скрипт з назвою першої літери нового рядка, оскільки це буде виконано бінарним файлом.
Ви можете знайти приклад цього за адресами:
32bit, змініть адресу на рядок прапорців у стеку, щоб його надрукував
puts
Вказівники функцій
Те ж саме, що й вказівник рядка, але застосовується до функцій, якщо стек містить адресу функції, яка буде викликана, можна змінити її (наприклад, щоб викликати system
).
Ви можете знайти приклад за адресою:
Посилання
Last updated