Recho的题目分析
2020-02-04 21:10:35 by hawkJW
这道题的思路和以往的不太一样,在这里学习、记录一下
1. 程序流程总览
首先,还是老规矩,看一下保护情况
可以看到,保护情况还是比较轻松的,主要在NX上,即栈上不可执行。下面具体看一下程序的流程,如图所示
实际上,我们发现这个流程还是比较简单的,就是不断地输入长度,在读取该长度的输入,并且不断重复这个步骤,知道read()函数的长度为0为止。
2. 漏洞
我们基本上一眼就能看出来这个漏洞,因为对于输入的长度值没有限制,则在读取该长度值的输入时就会产生栈溢出,从而可以通过ROP来实现漏洞利用。当然,实际的漏洞利用并没有这么简单,我们将在后面说明。
3. 漏洞利用
实际上,在进行这个漏洞利用之前,有几个问题。<