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

此题完

相关推荐
2601_966377131 小时前
运营商密评密改落地实践:透明加密解决密码应用合规与安全痛点
数据库·安全·oracle
孤狼warrior2 小时前
SCTR 五次失败的安全 BN 路由器
人工智能·python·深度学习·算法·安全·yolo
找方案2 小时前
AI安全攻防:大模型越狱、提示注入与防御之道
人工智能·安全·机器学习
智购科技自动贩卖机2 小时前
自动售货机嵌入式系统安全加固实践:从Go语言国密算法到硬件防拆的工程化落地
大数据·人工智能·后端·安全·golang·系统安全
Suxing92 小时前
C语言基础分享:C语言文件操作:从“写日记”到“拍电影”的存盘指南
c语言·开发语言
Navigator_Z2 小时前
LeetCode //C - 1237. Find Positive Integer Solution for a Given Equation
c语言·算法·leetcode
春风解人意11 小时前
从零开始学习嵌入式P32----网络基础之TCP
c语言·网络·学习·tcp/ip
砚凝霜11 小时前
【软考信息安全】第一章 网络安全基础、管理与法律法规
安全·web安全·php
商业看点解说12 小时前
企业需要为大模型应用设置安全护栏,推荐使用哪些生成式AI平台?
人工智能·安全