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

此题完

相关推荐
小弥儿43 分钟前
GitHub今日热榜 | 2026-09-04:Agent省 token 成今日主线
学习·开源·github
前端精髓1 小时前
NestJS 是什么(对着 Spring Boot 一起学习)
spring boot·后端·学习
kyrie_sakura2 小时前
MySQL数据库学习笔记2--系统函数(分组,单行,窗口函数)
数据库·学习·mysql
dadaobusi2 小时前
学习:XS-Gem5参数
学习
未来之窗软件服务2 小时前
计算机二级[英文]-C 字符串移动—东方仙盟
c语言·开发语言·仙盟创梦ide·东方仙盟
LearnYard3 小时前
技术博主实测:2026年大语言模型辅助学习工具横向对比
人工智能·学习·语言模型
M78佐菲3 小时前
HTML学习笔记
linux·笔记·学习·tcp/ip·html
科技每日热闻4 小时前
中国企业出海开展业务,如何挑选可安全合规使用国际大模型的云平台?Amazon Bedrock 在同一平台完成国际模型接入、区域选择与合规治理
大数据·人工智能·安全·ai
我还可以再学点4 小时前
QUIC学习笔记
笔记·学习
火眼金睛炼单词4 小时前
单词发音学习深度解读:方法步骤与优化策略
人工智能·学习