GUETSEC

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即可。