这是十分经典的栈迁移题目
拿到题目例行检查
32位程序开启了nx保护
进入ida,发现了很明显的system
我们进入main函数查看vul
可以看到溢出的部分不够我们rop所以这道题通过栈迁移去做
首先先通过溢出泄露出ebp的地址然后通过ebp的地址进行偏移
可以看到我们输入的a的地址是0xd140ebp的地址是0xd178所以我们可以用ebp-0x38使栈迁移到这里
leave的地址我们可以随便找一个,
完整exp如下
注意:system前面的a不可以去掉,否则拿不到shell(多次试验后的结果)
成功拿到flag
结束!!!