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
буде вказувати на доступний блок у купі
Якщо P знаходиться в кінці двозв'язного списку, bk
буде вказувати на доступний блок у купі
Якщо P знаходиться в двозв'язному списку, обидва fd
і bk
будуть вказувати на доступний блок у купі
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)