unlink
Last updated
Last updated
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (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
将指向 libc 中的 malloc_state
如果 P 位于双向链表的末尾,fd
将指向 libc 中的 malloc_state
当双向链表仅包含一个空闲块时,P 在双向链表中,fd
和 bk
都可以泄漏 malloc_state
中的地址。
堆泄漏:
如果 P 位于双向链表的头部,fd
将指向堆中的一个可用块
如果 P 位于双向链表的末尾,bk
将指向堆中的一个可用块
如果 P 在双向链表中,fd
和 bk
都将指向堆中的一个可用块
学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE) 学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)