libc 使用小trick
https://gitlab.com/chris3745/blog-pic/-/raw/main/logo1.png?inline=false 在没有free的情况下可以使用realloc进行free,也可以修改topchunk的size将其改小,而后申请一个大的chunk,此时topchunk就会进入unsortedbinlargebin攻击中largebin中已经存在一个chunk,此时需要一个小一点的chunk在unsortedbin,而后申请一个小一点的chunk就会触发,若是无法申请一个小一点的chunk,此时可以再释放一个chunk在堆中,而后申请此堆块触发。 malloc一个largebin的堆块时,会合并所有堆块,包括fastbin。 FSOP就是覆盖IO_list_all为可控内存指针,提前获取IO_write_ptr、_IO_write_base、_mode 等数据域的偏移,这样可以在伪造的 vtable 中构造相应的数据 劫持控制流可以劫持`_dl_open_hook`为可控的内存地址,之后通过malloc或free报错的方式,程序会把该值加载到寄存器,然后call该寄存器。 使用calloc将samllbin中的chunk放入tcache,可将后进入smallbin的chunk的bk修改为victim,触发后会将victim放入tcache。需注意victim的bk处的地址可写(在victim-->bk-->fd处将写入mainarena)。victim的fd会写入一个堆地址(tcache链) 先写几个,持续发现,持续更新
页:
[1]