本文共 761 字,大约阅读时间需要 2 分钟。
consolidate 过程
poc
a=malloc(x);b=malloc(x);free(a)//a进入fastbin中 c = malloc(0x400)//申请large bin的时候已经执行了malloc_consolidate,使得fastbin中的a放入smallbin中free(a)//并不会报错,因为这个时候a已经被放到了smallbin之中,fastbin中没有a,之后a再次进入fastbin中 //此时的a中信息如下:a.bk->smallbina.fd->0//由于处在fastbin的第一个,所以fd被清空 malloc(x) = a//这时候a中存在smallbin的信息,可以进行泄露malloc(x) = a//可以再次申请,再次得到a
申请两个fast bin大小的chunka、chunkb,释放chunk a
申请lage bin大小的chunk c,此时会进行malloc_consolidate,将fast bin中的chunk放入small bin,可以泄漏small bin中的信息
此时fast bin中没有bin,可以再次释放chunk a,触发double free
后面的操作,就跟double free 一样利用即可.
转载地址:http://ltugf.baihongyu.com/