House_of_orange

攻击条件

能够修改到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处

Untitled

此时要控制好main_arena+0x88处的IO_FILE的_chain即可(

这种攻击是通过abort流攻击的(因为unsorted bin结构被破坏

当再次申请内存的时候

调用流为malloc→malloc→printerr→__libc_message→abort()→_IO_flush_all_lockp()→_IO_overflow