这题拖了挺久的,因为一些知识点还不是很明白。 分析过程 checksec 保护全开 [*] '/mnt/e/sec/dasctf/ez_note/pwn' Arch: amd64-64-little RELRO: Full RELRO Stack: Canary found NX: NX enabled PIE: PIE ena…
利用条件 存在两个相邻堆块 能控制前一堆块数据部分 能控制后一堆块header部分 有可写指针指向前一堆块数据段地址,能获取该指针地址 利用原理 堆块 free 时,如果相邻前一堆块处于空闲状态,会尝试进行后向合并的操作,将两堆块合并成一个堆块。其中由于空闲堆块原本在双向链表中管理,因此会触发 unlink 对其进行脱链,即从双向链表中取出。 关于…