这是一个简单的利用栈溢出漏洞进行简单的ROP
下载附件,将程序放进虚拟机中
拿到程序首先检查程序开启了什么保护,输入 checksec 程序名称
checksec level0
可以看到这是一个64位程序,只开启了NX保护。NX保护简单来说就是代码不可执行。
例如你向栈上输入一段shellcode,那么NX保护就是防止这个shellcode的执行。
具体内容和其他的程序保护可以参考这个博客。linux程序的常用保护机制
在本地运行一下这个程序,了解这个程序是干什么的。
只显示了Hello World 后面就是输入点。这里我输入123程序就结束了。
看不出什么东西,用IDA对程序进行反编译。
很显然程序一开始输出的Hello World就是write函数。但是后续没有输出函数。
那么就一定在vulnerable_function这个函数中,双击点开。