fastbin_attack
控制malloc_hook
地址空间,再通过Unsortedbin_attack
将malloc_hook
内容改写成main_arena+0x58
,编辑malloc_hook
地址空间内容的后几位,改成one_gadget,实现利用,但是这里通常有几bit需要爆破。malloc_hook - 0x23
偏移的后8字节,因为通常main_arean地址在__malloc_hook
的下面不远处,算偏移一般都不会超过FF 无需进位。\x1d
覆盖后 chunk 0 的 fd 中的内容就刚刚好是malloc_hook - 0x23
malloc_hook_chunk
,便可以随意往malloc_hook
写东西 ( 注意:该操作结束之后要修复 fastbin链表 )malloc_hook
为main_arena+0x58
malloc_hook_chunk
内容malloc_hook
少4bit,他们实际地址相差甚远,所以就给覆盖造成了困难,在我本地测试的环境中: 比如main_arena+0x58 的地址是 0x7fffffxxx123 ,one_gadget的偏移是 0xe9456 ,由于后12bit未被随机化,所以 main_arena+0x58 肯定是被覆盖为 0x7fffffxxx456,但xxx这三位在我本机环境就不一样了,需要爆破xxx这12bit,才能找到正确的one_gadget地址。相关链接