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

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

此处我将文件命名为pwn

checksec pwn 查看一下保护机制

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

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

可以看到明显的read 栈溢出,需要填充offset=0x80+8的垃圾数据直到return address

而且这个题没有system函数,按shift+F12我们也没有看到/bin/sh,所以这个题需要我们自己泄露system和/bin/sh的地址,并且这个题没有给libc文件

回到虚拟机

ROPgadget --binary pwn --only "pop|ret"

得到了pop_rdi_ret = 0x4006b3,pop_rsi_r15_ret = 0x4006b1

nano exp.py 开始写攻击脚本

payload:我们利用write函数,输出write@got里储存的write函数的真实地址

然后利用write函数的真实地址和write函数在libc的偏移地址,算出基址,然后利用这个基址算出system函数的真实地址和/bin/sh的地址,用于构造payload2,并且在payload里我们我们最后返回到了vulnerable_function这个函数,重新栈溢出,填写我们的ROP链

保存退出

python3 exp.py

0

cat flag

此题完

相关推荐
hasty4 小时前
01_新网络安全法下的软件漏洞治理
网络·安全·web安全
Answer1st5 小时前
【嵌入式学习】嵌入式原理知识-定时器(六)
学习
@yanyu6665 小时前
C编译器安装与第一个C程序
c语言·开发语言
迪康Defender5 小时前
内网终端打印安全:权限、审批、审计三位一体防护实践
安全
山下梅子酒2255 小时前
洛谷-入门-B2070
c语言
猫咪宝妖5 小时前
信息安全工程师 第四级 结构化保护级
网络·数据库·安全
\光辉岁月/5 小时前
1.mybatis学习-基础
学习·mybatis
Logic1015 小时前
C语言/数据结构位运算题解:异或XOR找出多任务下载器中的“独特下载速度“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
へ蟲児.6 小时前
2026三大自带完整体系的英语学习App深度测评:哪款更适合儿童启蒙?
学习
苦猿的大模型日记6 小时前
Day64|从0学习 Claude Code(十四):MCP,给 Agent 装个工具插座
学习