拿道题第一步检查保护和结构
找洞下断点如图
进行调试发现如下图所示,如果要控制esp就先控制exc
然后,查看题目所给的buf内存离exc偏移量为30
进行布局将想要放放在你想要去的地方(经上,可知我们要控esp然后ret得到shell控制,即先控exc):
得出exp:
1 | from pwn import * |
这里最为致命:
1
shellcode = shellcode.ljust(26, '\x90')
之前错误的地方就在这!!!!!因为返回的是个地址,如果用30个来覆盖则会出现这样的情况
经过查看地址发现,会把那段返回的地址都填充
本文总阅读量次