hitcon的题果然不是那么简单的…….简直把堆玩出花了
首先看完题目,我就感觉肯定是用unsorted bin attack攻击stdin file struct的了,但是怎么攻击呢?
首先肯定要leak出libc地址
这个比较容易leak,直接用ghost就可以leak出来
然后呢?
目测是用off by one来构造overlap chunk
但是之前一直用的那种办法,在这里用不上,因为控制不了malloc的chunk的size
然后我就不会了……..去看题解
果然是那个方法get shell,但是前面还有好多东西
首先是要leak heap地址,这里我想了好久也不会
发现它是利用malloc_consolidate来将fastbin 转化为unsorted bin
然后通过malloc free使得两个unsorted bin相隔着,这样就有heap地址,用ghost来leak heap地址
之后呢?
看了下exp,发现是用unlink来将两个合并起来,中间就能控制一个unsorted bin,进而进行攻击了
这里附上 exp