5.2 KiB
Перенаправлення вказівників
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Вказівники рядків
Якщо виклик функції буде використовувати адресу рядка, що знаходиться в стеку, можна зловживати переповненням буфера, щоб перезаписати цю адресу і помістити адресу іншого рядка всередині бінарного файлу.
Якщо, наприклад, виклик функції 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
).
Ви можете знайти приклад за адресою:
Посилання
{% hint style="success" %}
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.