1.题目
2.IDA分析
3.流程分析
流程很简单,输入buf,这里不存在溢出,然后进入echo方法,将buf复制到s2,当遇到\x00就结束。这个条件会导致p64(addr)后面的内容被截断(地址经p64包装后肯定会出现\0x00)。栈结构如下:
也就是说,s2只能复制buf前面32个单元的内容。为了使32位后面的内容得以执行,我们需要在ret位置跳去执行四个pop指令,去掉buf前32位内容(也就是复制到s2里面的这些内容),这样就能连贯执行32位之后的内容了。
所以,目前payload = ‘A’ * 24 + p64(addr_pop4)
观察ida的function区没有发现sy