buuctf-pwn bypwn(ret2shellcode)题解(学习过程持续更新)

本人也是在自学过程,主要目的也是记录学习过程,有些地方做的不太好,都是按照自己理解进行讲解的(不专业),欢迎大家指出问题

此处我将文件命名为bypwn

checksec bypwn 查看一下保护机制

可以看到这是一个64-bit的文件,什么保护也没开

将文件拖入ida64,按F5将汇编代码转换成c语言代码,得到

可以看到存在scanf栈溢出,需要填充0x50+8的垃圾数据至return address。我们可以将shellcode写在&v4的最开头,然后覆盖返回地址为我们写入shellcode的地址。

双击sub_4007F9,进入这个函数

可以看到让我们输入0x20字节的内容,然后打印出来。我们可以利用printf遇到'\x00'才会停止输出这个特点,输出rbp的地址,从而得到我们写入shellcode的地址(rbp-0x50)

返回虚拟机

nano exp.py 开始写攻击脚本

第一次发送用于接收rbp的地址,从而得到我们后续写入shellcode的地址

第二次发送shellcode,然后填充剩余垃圾数据至return address,覆盖返回地址为写入shellcode的地址,执行shellcode,获得shell

保存退出

python3 exp.py

cat flag

此题完

相关推荐
坤坤子吖2 小时前
Linux网络编程:TCP服务器的多进程与多线程实现
linux·服务器·开发语言·网络·c++·笔记·学习
阡陌数智3 小时前
Claude API新版本重大变更与安全升级指南
java·linux·安全
蒸蒸yyyyzwd4 小时前
后端相关学习笔记。
笔记·学习
·present·4 小时前
CSAPP(lecture 13_02 Linking)
c语言·c++
andxe5 小时前
工业级 PoE 交换机选型指南:破解边缘部署四大核心难题
运维·网络·安全·光通信·交换机
旖旎夜光5 小时前
【C++ 基础入门】C++ 多态(上):虚函数、重写、override/final 与抽象类
开发语言·c++·笔记·学习
橙橙笔记7 小时前
QT的学习第四部分
linux·qt·学习·音视频
狂师7 小时前
把别人的软件拆开看,推荐5个主流逆向工具
安全·程序员·开源
叼烟扛炮7 小时前
Linux 学习笔记(五十四):内网穿透实战——用 frp 让外网访问你的私人电脑
linux·服务器·网络·笔记·学习
在猴站学算法8 小时前
(《统计学习方法》(第2版) 李航)第2章 感知机算法
学习·算法·机器学习·统计学习