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

此题完

相关推荐
海绵宝宝转agent28 分钟前
LeetCodehot100题解
java·笔记·学习·算法·leetcode·深度优先
2301_7807896630 分钟前
智能汽车的“软肋”:车载系统漏洞分析与安全防护框架初探
网络·安全·车载系统·汽车·ddos
芒果作者42 分钟前
我决定系统学习 Codex,并建立一套自己的知识库
学习
长不大的杨瑞杰1 小时前
OpenCode v2 运行时预热实战:Warming、Prompt Cache、后台服务与成本治理
人工智能·安全·云计算·软件工程·devops
AI_Lab011 小时前
服务器管理工具要在服务器上装 Agent,安全吗?
服务器·安全·github
2601_961146201 小时前
实验室等离子表面处理设备安全整改记录:通风、UV、接地三项
笔记·安全·uv
zhongerzixunshi2 小时前
落实等保要求,筑牢信息系统安全防线
安全
代码山河11 小时前
Python就业方向全解析:后端、爬虫、数据分析、AI你选哪个?
python·学习·架构·教程·面向对象·项目
听风说ml11 小时前
socket编程 【C语言】
c语言·udp·tcp·socket编程
释厄62312 小时前
AI学习层更新与跨体转移律——人类社会同构·不缺理解缺 U
人工智能·学习