拿到题目,先运行一下
很明显地出现了一个重复我们的输入,以及一个判断的过程,那么我们可以猜测可能会有栈溢出漏洞,让我们继续
保护是开了一个canary 以及nx ,大概率就不是栈溢出漏洞了,因为canary的存在会使栈溢出非常麻烦。
我们看一下IDA
存在栈溢出漏洞,但是由于长度不够,我们无法利用。
我们接着看可以看到printf(buf),存在格式化字符串漏洞,那么我们便可以利用它。
我们先制造输入来获得偏移量
由于A对应的是41,所以我们可以得到偏移量是10,并且
至此我们的到了我们想要的全部信息
exp:
flag: