unlink
Last updated
Last updated
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Перегляньте це чудове графічне пояснення процесу unlink:
Перевірте, чи вказаний розмір шматка такий же, як prev_size, вказаний у наступному шматку
Також перевірте, що P->fd->bk == P
і P->bk->fw == P
Якщо шматок не малий, перевірте, що P->fd_nextsize->bk_nextsize == P
і P->bk_nextsize->fd_nextsize == P
Непов'язаний шматок не очищає виділені адреси, тому, маючи доступ до них, можна витікати деякі цікаві адреси:
Витоки Libc:
Якщо P знаходиться на початку двозв'язного списку, bk
буде вказувати на malloc_state
у libc
Якщо P знаходиться в кінці двозв'язного списку, fd
буде вказувати на malloc_state
у libc
Коли двозв'язний список містить лише один вільний шматок, P знаходиться в двозв'язному списку, і обидва fd
і bk
можуть витікати адресу всередині malloc_state
.
Витоки Heap:
Якщо P знаходиться на початку двозв'язного списку, fd
буде вказувати на доступний шматок у heap
Якщо P знаходиться в кінці двозв'язного списку, bk
буде вказувати на доступний шматок у heap
Якщо P знаходиться в двозв'язному списку, обидва fd
і bk
будуть вказувати на доступний шматок у heap
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)