能够修改到top_chunk的size值
可以得到一个unsortedbin
glibc ≤ 2.23
当malloc的值≥0x20000的时候会调用mmap来分配,而低于则会切割top_chunk来分配
当top_chunk不够分配的时候,会把当前top_chunk释放,然后再重新申请一个大的top_chunk
看top_chunk的size值,比如0x20791这样子
改为0x791,再申请一个大的即可无中生有一个unsorted bin出来
随后如果能够修改到unsortedbin的bk位,即可实现unsorted bin attack
一般后续攻击是挟持IO_list_all指针
unsorted bin attack实现的是将main_arena+0x88写到IO_list_all处
此时要控制好main_arena+0x88处的IO_FILE的_chain即可(
这种攻击是通过abort流攻击的(因为unsorted bin结构被破坏
当再次申请内存的时候
调用流为malloc→malloc→printerr→__libc_message→abort()→_IO_flush_all_lockp()→_IO_overflow