buuctf-pwn ciscn_2019_n_5题解(学习过程持续 更新)

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

此处我将文件命名为pwn

checksec pwn 查看一下保护机制

可以看到这是一个64-bit的文件

在gdb里看一下vmmap

可以看到stack是可读可写可执行的,但是其他区域都是不可执行的

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

可以看到存在gets(text)栈溢出,双击name

可以看到name在bss段,但是bss段是不可执行的,所以在name处写shellcode是行不通的

我们考虑用ret2libc的解题手法

返回虚拟机

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

得到pop_rdi_ret = 0x400713,ret_addr = 0x4004c9

nano exp.py 开始写攻击脚本

payload:调用puts函数,泄露puts@got里存储的puts函数的真实地址,进而得到system函数和'/bin/sh'的真实地址

payload2:构造system("/bin/sh"),获得shell

保存退出

python3 exp.py

0

cat flag

此题完

相关推荐
旖旎夜光26 分钟前
【AI入门】大模型介绍全解析:从模型、LLM 到提示词与嵌入
人工智能·笔记·python·学习·ai编程
德迅云安全-上官32 分钟前
业务接口对抗爬虫与批量薅羊毛实战手册:拨开接口层攻击迷雾,搭建业务接口全链路安全防护体系
爬虫·安全
随遇而安zx39 分钟前
SpringCloud---安全(Security / OAuth2 / JWT)设计思想与深度解析
安全·spring cloud
xxwl58539 分钟前
Git常用命令的学习
git·学习
具身AGI44 分钟前
从演示到作业,物理AI 人类学习路线 的深意
人工智能·学习
MSTcheng.1 小时前
【Linux】Linux学习第三弹——Linux基本指令2
linux·windows·学习·ubuntu·操作系统
tju新生代魔迷1 小时前
Verilog HDL学习笔记(三)| 第3章 基本概念(上)——词法约定与数据类型
笔记·学习
lightningyang1 小时前
第一届全国技能大赛网络安全(模块A)-密码安全策略配置
安全·web安全·天枢一体化虚拟仿真平台·全国节能大赛网络安全赛项