之前没有全面的学习,现在网上资料真是比几年前全面的多了,这里总结回顾一下fastbin attack的原理思路。这里参考的博主链接如下,写的确实很详实
https://blog.youkuaiyun.com/Breeze_CAT/article/details/103788698
一、基础知识
需要了解fastbin的分配原理,fastbins是管理在malloc_state结构体重的一串单向链表,分为0x20-0x80总共7个链表:
- 每次free释放对应大小的堆块,会加入到对应的链表中
- 每次malloc分配堆块,会从对应大小的链表中分配一个堆块
- 维护malloc_state遵循后入先出的原则(LIFO)
关于第三条原则,用引用网站的两张图便可以解释清楚
二、double free
double free+fastbin attack的利用场景,通常在对堆块有越界