小技巧

64位情况下,各个bins的分配方案 - tcachebins:大小小于0x420,里面没有被填满(7个) - fastbins:tcachebins被填满,大小小于等于0x80 - 上述都不符合,填入unsortedbins中

当寄存器都是0的时候,执行syscall,rcx会被赋值,从而泄漏libc

在不加入tcachebins和fastbins的情况下直接加入到ub中 - 一般直接申请一个0x420更大的就行了,不过有的题会限制大小,那么采用下面的方法 - 在堆上构造一个0x420或以上的堆块,然后利用UAFchunk指向这个伪造的堆块,最后进行delete把这个堆块free掉,就可以到unsortedbin这里 - 通过改tcache_perthread_struct然后把tcache_perthread_struct给free掉

评论

评论