1. GUETSEC栈溢出
可以看到它看起来好像有四个栈溢出,我们逐个点进去
__isoc99_scanf("%20s", v1):限制了读取20个字符串(但其实无法完全杜绝缓冲区溢出风险)
0x50=80,对于second attack是溢出了,final chance却没有。
所以其实只有second attack存在栈溢出。
我们再看一下,有个gift函数,里面有system函数
再搜索一下,发现有个/bin/sh
那么一切就好办了,对second进行栈溢出之后将程序调转到system,并且要先输入first attack的值
这里的system的地址是plt,p32(0)填入的是返回地址,因为不需要了可以随便输,p32(binsh)是system的参数
这里的system是call system的地址,再给一个参数binsh即可。