buuctf-pwn ciscn_2019_sw_1(32位只有一次格式化机会)题解(学习过程持续更新)

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

此处我将文件命名为pwn

checksec pwn 查看一下保护机制

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

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

可以看到明显的printf(&format)格式化字符串漏洞,且只有一次机会,有内置system函数,无"/bin/sh"字符串。我们可以通过改写finif_arrary为main函数地址,从而获得第二次printf的机会,输入"/bin/sh"

思路:第一次改写fini_array为main函数,改写printf@got里的内容为system@plt;第二次输入'/bin/sh'字符串

在ida里收集main,system@plt的地址

得到main_addr = 0x8048534,system_plt=0x80483d0

返回虚拟机

收集fini_array,printf@got的地址

得到fini_arry=0x804979c

gdb pwn

start

got

得到printf@got=0x804989c

./pwn

aaaa.%p.%p.%p.%p.%p

可以看到0x61616161在我们输入aaaa后的第4个参数处

nano exp.py

保存退出

python3 exp.py

ls

cat flag

此题完

相关推荐
点纭1 小时前
C 语言 第七章 常用函数(3)
c语言·开发语言·算法·oracle·c#
传奇开心果编程1 小时前
【Jetpack Compose基础语法学与练】第9课 SideEffect副作用 + LaunchedEffect,处理异步任务和生命周期
android·学习·ui·kotlin·android jetpack
传奇开心果编程2 小时前
【ArkUI 练中学】第14课:应用性能优化实战
学习·ui·华为·harmonyos
三8442 小时前
云安全 · 06 · 云凭证 AK/SK 与元数据服务
安全·云安全·docker逃逸·ak/sk
PNP Robotics2 小时前
【PNP具身解读】GPT6 Astra:具身智能新范式,大模型 + Franka机器人快速落地验证一、GPT6 Astra 背后的布局、数据与具身方向
人工智能·学习·机器学习·机器人
小李不想当小白3 小时前
PCB结构与组成(PCB设计入门学习笔记)
经验分享·笔记·单片机·嵌入式硬件·学习·pcb工艺·pcb
那年窗外下的雪.3 小时前
第 02 天:Linux 权限、inode、目录项与链接
学习·http
XGStudio20243 小时前
免费安全的 - 二维码转换工具
学习·ai
邵奈一3 小时前
【紧急处理ZCode事件】ZCode 工作区快照静默上传:检测方法与三层防护实践
人工智能·学习·大模型·国产