有UAF
有UAF,基本就不用说了,随便一种就行:
- 利用tcache/fastbin
- 利用释放后的tcache next指针>>12,可获取堆地址
- 利用unsorted bin
- 利用释放后的unsorted bin的fd和bk , 可获取libc地址
- 释放两个堆块(这两个堆块不连续,否则会合并),让他们进入unsorted bin,可同时获取libc和堆地址,前提是输出不被截断

无UAF,但是输出不截断
主要是利用了堆块申请出来不会主动清空fd和bk 还有fd_nextsize和bk_nextsize
- 利用unsorted bin
add(0,0x418)add(1,0x10)add(2,0x4f8)free(0)free(2)add(3,0x418)show(3) //不截断输出利用效果也是这样
2. 利用large bin
add(0,0x418)add(1,0x10)free(0)add(2,0x4f8)add(3,0x418)show(3) //不截断输出
Thanks for reading!
