buuctf-pwn mrctf2020_easy_equation(64位fmt)题解(学习过程持续更新)

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

此处我将文件命名为pwn

checksec pwn 查看一下保护机制

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

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

可以看到存在printf(&s)格式化字符串漏洞,并且经计算得到:当judge=2时if语句成立,得到shell。所以我们可以利用格式化字符串漏洞来将judge的值改写成2

双击judge

得到judge_addr = 0x60105c

返回虚拟机

./pwn

aaaaaa.%p.%p.%p.%p.%p.%p.%p.%p.%p.%p

可以看到第一个a在第7个参数里,剩余的五个a在第8个参数里,所以我们在输入judge_addr之前需要先输入一个a来占位。

并且这是一个64位的格式化字符串漏洞,我们需要将地址写在payload的最后。在地址前先输入9字节的内容,占据第七个参数的一部分和第八个参数,那么地址就在第9个参数。讲的有点乱,直接看exp,就懂了。

nano exp.py

两个a是让judge等于2,三个A是用来占位的,aa%9$nAAA总共9字节

保存退出

python3 exp.py

cat flag

此题完

相关推荐
山下梅子酒2259 小时前
洛谷-入门-B2070
c语言
猫咪宝妖9 小时前
信息安全工程师 第四级 结构化保护级
网络·数据库·安全
\光辉岁月/9 小时前
1.mybatis学习-基础
学习·mybatis
Logic1019 小时前
C语言/数据结构位运算题解:异或XOR找出多任务下载器中的“独特下载速度“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
へ蟲児.10 小时前
2026三大自带完整体系的英语学习App深度测评:哪款更适合儿童启蒙?
学习
苦猿的大模型日记10 小时前
Day64|从0学习 Claude Code(十四):MCP,给 Agent 装个工具插座
学习
方白羽10 小时前
Android APK安全防护
android·安全·apk
小蒋观天下10 小时前
行业拆解|两轮车检测AI摄像头的核心技术迭代、产品演进及未来技术发展
大数据·人工智能·安全·计算机视觉·ai大模型
持敬chijing11 小时前
CTFshow-WEB-新年好?解题思路
安全·web安全·网络安全·网络攻击模型
m4Rk_11 小时前
【论文阅读】Agent 记忆机制(82):ReasoningBank——从成功与失败经验中沉淀可复用的推理记忆
论文阅读·人工智能·学习·开源·github