关于条件竞争的一道pwn题
Here's something encrypted, password is required to continue reading.
大致原理:
通过篡改_IO_2_1_stdout_结构体中的flags字段和_IO_write_base字段,通过篡改flags字段来绕过一些检查,通过篡改_IO_write_base字段使得系统调用write打印_IO_write_base字段与_IO_write_ptr字段之间的内容泄露出libc地址。
使用前提:
1、程序没有show函数
2、开启了FULL RELRO保护
利用过程:
1、想办法将_IO_2_1_stdout_结构体申请出来。
2、往_IO_2_1_stdout_结构体写入构造好的数据(具体是什么下面会说)。
3、执行任意一个puts函数,就可以将libc地址泄露出来。