0%

House of orange因一道同名的题而来,它是在程序没有调用free函数的情况下利用其它漏洞结合IO_FILE来达到利用。

  1. 首先利用漏洞修改top chunk的size,然后申请一个比size大的堆,满足一定条件,这个top chunk就会被释放到unsorted bin里。

  2. 利用unsorted bin attack,将__IO_list_all指针改写为unsorted bin的头chunk地址

  3. 利用漏洞在可控的unsorted bin里伪造IO_file_plus和vtable结构

  4. 再次malloc时,由于unsorted bin里的指针被修改了,发生malloc_printerr报错,而malloc_printerr用到了__IO_list_all指针,会从__IO_list_all指向的地方开始查找合适的FILE结构,并调用里面vtable里的函数。因此,我们在vtable里放入system函数即可getshell

我们先来看一下程序的保护机制

阅读全文 »

首先,我们检查一下程序的保护机制

然后,我们用IDA分析一下,发现是一个服务器程序,[每接收到连接请求后就会fork一个子进程来处理。]{.mark}

阅读全文 »

首先,我们检查一下程序的保护机制

然后,我们用IDA分析一下

阅读全文 »

首先,检查一下程序的保护机制

然后,我们用IDA分析一下,一个经典的增删改查程序

阅读全文 »

首先,检查一下程序的保护机制

然后,我们用IDA分析一下

阅读全文 »

首先,检查一下程序的保护机制

然后,我们用IDA分析一下

阅读全文 »