Fastbin Attack
libc2.26后加入了tcache机制
fastbin attack
fastbin attack能利用的前提
- 能创建fastbin类型的chunk
- 存在堆溢出,use-after-free(ufa)等能控制chunk内容的漏洞
如果细分的话:
fastbin double free
即利用double free漏洞构造chunk
我们首先申请回chunk1,然后修改其fd值指向一个fake_chunk,这里的chunk要保证size域合法,我们再次申请3次同样的chunk,就会依次拿到chunk2.chunk1.fake_chunk。我们只要在关键位置伪造fake_chunk就可以了。例如在malloc_hook左右伪造fake_chunk,然后修改malloc_hook的值为one_gadget就可以在调用malloc时get_shell
UAF
同fastbin double free利用手法相似,只不过只需free一次,然后修改fd指针指向fake_chunk
House of Spirit
该技术的核心在于在目标位置处伪造fastbin chunk,并将其释放,再申请回来,从而达到分配指定地址的chunk目的
小结
1.伪造合理的chunk
2.使fd指向fake_chunk.或者free fake_chunk,使得fake_chunk加入到fastbin中
3.分配得到fake_chunk,进行后续利用