文章预览
一 简介 介绍部分来自参考资料[0],其余内容参考自glibc malloc源码,本文结合源码探讨了malloc中的多种机制:包括malloc consolidation,unsortedbin sort,mmap,heap grow等。 漏洞成因 overflow write 、 use after free 适用范围 ◆ 2.23 —— 2.26 ◆超过 0x400 大小的堆分配 ◆可以写 fastbin 的 fd 或者 size 域 利用原理 该利用技巧的核心是 malloc_consolidate 函数,当检测到有 fastbin 的时候,会取出每一个 fastbin chunk ,将其放置到 unsortedbin 中,并进行合并。 以修改 fd 为例,利用过程如下: ◆申请 chunk A 、 chunk B ,其中 chunk A 的大小位于 fastbin 范围 ◆释放 chunk A ,使其进入到 fastbin ◆利用 use after free ,修改 A->fd 指向地址 X ,需要伪造好 fake chunk ,使其不执行 unlink 或者绕过 unlink ◆分配足够大的 chunk ,或者释放 0x10000 以上的 chunk ,只要能触发 malloc_consolidate 即可 ◆此时 fake chun
………………………………