nowhere 发表于 2021-7-7 09:55:43

libc 使用小trick

https://gitlab.com/chris3745/blog-pic/-/raw/main/logo1.png?inline=false

nowhere 发表于 2021-7-7 10:17:50

在没有free的情况下可以使用realloc进行free,也可以修改topchunk的size将其改小,而后申请一个大的chunk,此时topchunk就会进入unsortedbin

nowhere 发表于 2021-7-7 10:18:09

largebin攻击中largebin中已经存在一个chunk,此时需要一个小一点的chunk在unsortedbin,而后申请一个小一点的chunk就会触发,若是无法申请一个小一点的chunk,此时可以再释放一个chunk在堆中,而后申请此堆块触发。

nowhere 发表于 2021-7-7 10:18:26

malloc一个largebin的堆块时,会合并所有堆块,包括fastbin。

nowhere 发表于 2021-7-7 10:18:43

FSOP就是覆盖IO_list_all为可控内存指针,提前获取IO_write_ptr、_IO_write_base、_mode 等数据域的偏移,这样可以在伪造的 vtable 中构造相应的数据

nowhere 发表于 2021-7-7 10:19:03

劫持控制流可以劫持`_dl_open_hook`为可控的内存地址,之后通过malloc或free报错的方式,程序会把该值加载到寄存器,然后call该寄存器。

nowhere 发表于 2021-7-7 10:19:18

使用calloc将samllbin中的chunk放入tcache,可将后进入smallbin的chunk的bk修改为victim,触发后会将victim放入tcache。需注意victim的bk处的地址可写(在victim-->bk-->fd处将写入mainarena)。victim的fd会写入一个堆地址(tcache链)

nowhere 发表于 2021-7-7 10:19:49

先写几个,持续发现,持续更新
页: [1]
查看完整版本: libc 使用小trick