2.7 KiB
Перенаправлення вказівників
{{#include ../../banners/hacktricks-training.md}}
Вказівники рядків
Якщо виклик функції буде використовувати адресу рядка, що знаходиться в стеку, можна зловживати переповненням буфера, щоб перезаписати цю адресу і вставити адресу іншого рядка всередині бінарного файлу.
Якщо, наприклад, виклик функції system буде використовувати адресу рядка для виконання команди, зловмисник може помістити адресу іншого рядка в стек, export PATH=.:$PATH і створити в поточному каталозі скрипт з назвою першої літери нового рядка, оскільки це буде виконано бінарним файлом.
Ви можете знайти приклад цього за адресами:
- https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/strptr.c
- https://guyinatuxedo.github.io/04-bof_variable/tw17_justdoit/index.html
- 32bit, змініть адресу на рядок прапорців у стеці, щоб його надрукував
puts
Вказівники функцій
Те ж саме, що і вказівник рядка, але застосовується до функцій, якщо стек містить адресу функції, яка буде викликана, можна змінити її (наприклад, щоб викликати system).
Ви можете знайти приклад за адресою:
Посилання
{{#include ../../banners/hacktricks-training.md}}