通过一些例子来学习pwn,这些例子来自于github上的ctf-wiki pwn部分
栈溢出原理(示例:ret2text)
首先,获取要pwn的程序的基本信息
这个程序是Linux下32位的elf格式的可执行文件,没有开启栈(stack)保护机制,没有开启nx
了解了程序的基本信息以后,就运行下程序
发现只有输入和输出,而且就只有一个输入点。
放到ida里面去跑一下
可以看到,gets从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取
我们需要明确的知道输入到第多少位的时候可以覆盖到返回地址。
这里使用cyclic(pwntools中的一个插件)