PWN

PWN|庖丁解堆

Posted by Elli0t on 2020-08-18

堆溢出利用 - fastbin attack

image-20200818090753100

实现任意函数调用。虽然不合法,但是我们在覆盖 chunk_n2 的 prev_size 和 size 之后,并没有 malloc 或者 free(没有机制对 prev_size 和 size 进行检查)

image-20200818091549733

为什么 n2 的 prev_size 不合法也可以正常的 malloc?

实现对某些地址的写入。因为 prev_size 只有在 free 的时候才会被用到(检查前一个 chunk 的头地址),而我们没有用到 free。

思考🤔,为什么是对某些地址的写入而不是对任意地址写入?(暂不考虑 tcache)

[因为 malloc 时会对 fastbin 做检查](https://cdn.jsdelivr.net/gh/ybm911/blog_picture/img/2020-08-18 09.31.11.png)