unlink
学习与实践 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)
Last updated