Print Stack Canary
Last updated
Last updated
Вивчайте та практикуйте хакінг AWS: Навчання AWS Red Team Expert (ARTE) від HackTricks Вивчайте та практикуйте хакінг GCP: Навчання GCP Red Team Expert (GRTE) від HackTricks
Уявіть ситуацію, де програма, вразлива на переповнення стеку, може виконати функцію puts, вказуючи на частину переповненого стеку. Атакуючий знає, що перший байт канарейки - нульовий байт (\x00
), а решта канарейки - випадкові байти. Потім атакуючий може створити переповнення, яке перезапише стек до першого байта канарейки.
Потім атакуючий викликає функціональність puts посередині поліпшення, яке виведе всю канарейку (крім першого нульового байта).
З цією інформацією атакуючий може створити та відправити нову атаку, знаючи канарейку (у тій самій сесії програми).
Очевидно, що ця тактика дуже обмежена, оскільки атакуючому потрібно мати можливість вивести вміст свого поліпшення, щоб ексфільтрувати канарейку, а потім мати можливість створити нове поліпшення (у тій самій сесії програми) та відправити справжнє переповнення буфера.
Приклади CTF:
64-бітна, з увімкненим ASLR, але без PIE, перший крок - заповнити переповнення до байта 0x00 канарейки, а потім викликати puts і витікати її. З канарейки створюється ROP-гаджет для виклику puts для витоку адреси puts з GOT та ROP-гаджет для виклику system('/bin/sh')
32-бітна, ARM, без relro, канарейка, nx, без pie. Переповнення з викликом puts на ньому для витоку канарейки + ret2lib виклик system
з ланцюжком ROP для pop r0 (арг /bin/sh
) та pc (адреса system)
З довільним читанням, як у випадку, наданим форматом рядків, можливо витікання канарейки. Перевірте цей приклад: https://ir0nstone.gitbook.io/notes/types/stack/canaries і можете прочитати про зловживання форматом рядків для читання довільних адрес пам'яті в:
https://github.com/HackTricks-wiki/hacktricks/blob/ua/binary-exploitation/format-strings/README.mdЦе виклик використовує форматний рядок дуже простим способом для читання канарейки зі стеку
Вивчайте та практикуйте хакінг AWS: Навчання AWS Red Team Expert (ARTE) від HackTricks Вивчайте та практикуйте хакінг GCP: Навчання GCP Red Team Expert (GRTE) від HackTricks