介绍:在2.29的libc版本中,进行了unsorted bin的双向链表完整性检查。因此unsorted bin attack也就失效了,不过在libc2.29的版本中tcache stashing unlink attack却可以达到类似的效果(在一个任意地址写入一个libc地址)。

阅读全文 »

写在前面:

通过学习house of orange,又对unsorted bin attack以及FSOP有了一些新的理解。说到底house of orange本身的效果很小,但加上两个组合拳(unsorted bin attack和FSOP)则威力就会变的很大。这篇文章我将对这三种手法都详细记录一下原理和利用方式,最后放上例题。

阅读全文 »

io leak

大致原理:

通过篡改_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地址泄露出来。

阅读全文 »