buuctf-pwn bjdctf_2020_babystack2题解 整数溢出(学习过程持续更新)

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

此处我将文件命名为babystack2

checksec babystack2 查看一下保护机制

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

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

可以看到让我们输入一个数nbytes,如果有符号型整数的nbytes小于等于10,就可以read(0, &buf, (unsigned int)nbytes),当无符号型整数的nbytes足够大就会发生栈溢出。无符号型整数范围0,2\*\*32-1,是不存在负数的,如果我们输入-1就相当于最大值2**32-1。所以-1有符号型小于10,无符号型足够大,满足我们的需求。

后门函数地址 0x400726

返回虚拟机

ROPgadget --binary babystack2 --only "ret"

得到ret_addr = 0x400599

nano exp.py 开始写攻击脚本

第一次发送b'-1'

第二次发送payload,(0x10+8)是我们要填充的垃圾数据至return address,ret_addr用于栈对齐,0x400726是后门函数的地址

保存退出

python3 exp.py

cat flag

得到flag

CTF2{bde9305c-aec2-45d8-bab7-7d426cb5f51c}

此题完

相关推荐
hasty4 小时前
从 Prompt Injection 到越界写文件:Theia Agent Mode 的信任边界为何失效
安全·prompt
phltxy5 小时前
C语言操作符详解
java·c语言·算法
RuoZoe5 小时前
从 2026 年 3 月 1 日开源,到 26.10.9:Jalium UI 半年时间到底走了多远?
c语言·c++
Amy187021118235 小时前
守好第一道门:馈线保护装置如何为海上风光固态变压器筑牢安全防线
安全
sunshine22 girl6 小时前
Java学习一 环境配置2 安装和基本使用Idea
java·学习·intellij-idea
Kobebryant-Manba7 小时前
学习Bert微调
人工智能·学习·bert
xian_wwq7 小时前
【学习笔记】深度认知系列-第14讲 端侧AI崛起——为什么AI正在从云端走向本地
人工智能·笔记·学习
上海锝秉工控7 小时前
免调校抗干扰 激光甲烷传感守护工业安全
安全
我爱cope7 小时前
【计算机网络 | 传输层3:TCP 协议概述:面向连接、可靠传输到底意味着什么?】
网络·网络协议·学习·tcp/ip·计算机网络·传输层
知无不研8 小时前
c语言中循环的介绍与简单应用
c语言·开发语言·算法·循环·for·while