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

此题完

相关推荐
xiaohaiAIgeo15 小时前
【2026年】通风柜自动门安全吗?联锁逻辑与防夹设计
人工智能·安全·科普知识
·云扬·15 小时前
Prompt 工程与安全:从 System 设计到注入防御
java·人工智能·安全·ai·prompt
滕州市燕猫虎计算机科技工作室个体工商户16 小时前
《Rust程序设计》学习笔记八:结构体
笔记·学习·rust·rust程序设计
别动我齐刘海17 小时前
Linux 系统调试学习1
linux·运维·服务器·c++·学习·机器学习·机器人
QZ1665609515918 小时前
金融数据流转监测排行:从看见到拦截的距离
网络·安全·网络安全·金融
xier_ran19 小时前
【infra之路】AI 编译器学习笔记(二):重拾 C++——移动语义与 LLVM 风格的类型转换
人工智能·笔记·学习
看着博客敲代码19 小时前
WorkBuddy 接上 Kali MCP 做自动化渗透:信息收集到初步验证的落地记录
linux·人工智能·安全·网络安全·自动化
里昂00721 小时前
发工单前,怎样清理 JSON 日志而不破坏排错信息?
安全
wuyk55521 小时前
嵌入式驱动开发:量产级工程化实战(第9篇)——低功耗下的通信可靠性
c语言·驱动开发·stm32·单片机·嵌入式硬件
li星野21 小时前
5 TYPES OF ADVERBS — One-Page Notes
学习