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}

此题完

相关推荐
寻林写彡3 小时前
Web 安全三大漏洞靶场作业全整理:PHP 核心函数与防御方案汇总
安全·php
自信150413057593 小时前
重生之从0开始学习c++之string(下)
c++·学习·stl
T.O.P_KING3 小时前
Falco vs. Tetragon:云原生运行时安全选型指南
安全·云原生
leizhen198408093 小时前
Vibe Coding:门槛降了,但判断力成了新的门槛(漫画)
人工智能·安全
kmomo..3 小时前
Linux 驱动开发学习笔记:UART、触摸屏与 ADC 驱动实战
linux·驱动开发·学习
学逆向的4 小时前
C 选择结构的执行效率分析
c语言·开发语言·算法·网络安全
guohuang4 小时前
让机器人安全失败:点云中断、TF 超时和控制器崩溃怎么测
git·安全·机器人
youdexiang4 小时前
如何建立个人学习资料库?
学习
人工智能培训4 小时前
具身智能环境交互与学习范式原理
大数据·linux·人工智能·学习·算法·机器学习
Tj8105234 小时前
企业培训如何真正落地:从组织能力建设到培训ROI评估的完整指南
学习·学习方法