buuctf-pwn [NewStarCTF 2023 公开赛道]stack migration(64位栈迁移)题解(学习过程持续更新)

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

checksec pwn 查看一下保护机制

可以看到这是一个64-bit的文件,NX保护开启

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

可以看到存在read(0,&v3,96)栈溢出,96-0x50=16,所以仅能溢出到return address,考虑栈迁移。我们可以迁移到v2上去,并且printf里的%p也帮我们打印出来了v2的地址,v2的地址加8就是v3的地址

这个题我们需要两次利用栈迁移:第一次调用pust函数泄露read@got里存储的read函数的真实地址,从而得到system函数和字符串'/bin/sh'的地址;第二次构造system("/bin/sh"),获得shell

返回虚拟机

第一次发送:8个'a',利用%p获得地址

第二次发送:泄露read@got里存储的read函数的真实地址;其中buf_addr+8是payload的起始位置,

b'a'*8是因为ret后esp会自动加8,用于填充那八个字节的空余位置(垃圾数据);最后返回到sub_4011FB函数,而第二次构造做准备

然后接收read函数的真实地址,进而得到system函数和字符串'/bin/sh'的真实地址

第三次发送:再次重复第一次的步骤,获得buf_addr

第四次发送:构造system("/bin/sh");ret_addr用于栈对齐

完整exp

保存退出

python3 exp.py

cat flag

此题完

相关推荐
小向是个Der7 小时前
嵌入式进阶——MCU上电后的动作
c语言·单片机·mcu·学习·链接脚本
bkspiderx10 小时前
基于Socket的广播通信及C语言实现详解
c语言·开发语言·socket·广播·socket的广播通信
辣知11 小时前
辣知·化智93 被历史尘封的鬻子
学习
安教安全员通关宝11 小时前
2026年吉林安全员C3证考试题库+答案+解析
安全
躺柒11 小时前
读数据安全架构设计与实践17安全架构案例(下)
数据库·安全·零信任·安全架构·防火墙·无边界
HackTwoHub11 小时前
双通道红队 C2,MCP 接入 AI,全自动渗透实战利器,具备自动提权、进程伪装、无文件上线能力,载荷 AES 加密
安全·web安全·网络安全·系统安全·密码学·可信计算技术·安全架构
学页官方12 小时前
【安全实操】教培系统上线前的安全检查清单(20条)
安全
每天题库12 小时前
西藏安全员 A 证备考真题题库 强化重点知识刷题提升通过率
学习·安全·考试·题库·考证
Be for thing13 小时前
PyTorch基础|Tensor张量详解,张量创建、数据类型与常用操作
pytorch·学习·1024程序员节
2601_9672127213 小时前
安全型轨道式插座合规资质核查与工程选型技术要点
大数据·经验分享·安全