拿到题目首先运行一下
我们可以看到在我第一次运行时我们发现他就是将我们输入的重新输出了一遍,我们可以猜测应该是gets函数输入,然后输出,那我们便可以测试第二次,我们输入一个超长字符串,发现程序崩溃了,我们可以猜测应该是程序没有对长度进行检测而导致的栈溢出,那么我们带着这个猜测检查一下保护机制(因为保护机制的存在也可以导致程序崩溃).
我们发现基本保护机制都没开,那和我们的猜测应该大差不差了。
看一下IDA
情况基本和我们想的一样,我们看一下字符串表
发现了我们想要的system 和 bin/sh,最后发现他们都在fun函数中,那么接下来便是写解题的exp了。
exp:
最后得出了flag