buuctf-pwn [极客大挑战 2019]Not Bad(orw+jmp)题解(学习过程持续更新)

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

此处我将文件命名为pwn

checksec pwn 查看一下保护机制

可以看到这是一个64-bit的文件,什么保护也没开

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

可以看到mmap了一块可写可执行的内存,我们可以将shellcode写在这块区域

双击sub_400A16(),进入函数

可以看到存在read(0,&buf,0x38)栈溢出,但只能溢出0x18字节。(一开始想到的是栈迁移,但是行不通)

返回虚拟机

可以看到开了沙盒保护,只能使用read,write,open函数,考虑orw

ROPgadget --binary pwn --only "jmp"

可以看到有jmp_rsp=0x400a01

开始写攻击脚本

payload1:写入shellcraft.read,在最后利用jmp_rsp执行"sub rsp,0x30;jmp rsp",返回到payload1开头,调用read函数;"mov rax,0x12300;jmp rax"用于执行之后写在mmap地址上的shellcode

payload2:orw

保存退出

paython3 exp.py

获得flag

此题完

相关推荐
HackTwoHub1 小时前
红队低成本 IP 轮换方案 ProxyCat升级版,自动扩容代理池、负载分摊转发,一键部署,告别高价隧道代理
网络·人工智能·网络协议·tcp/ip·安全·web安全·网络安全
安教安全员通关宝1 小时前
2026年吉林安全员C2证考试题库+答案+解析
安全
zhongerzixunshi1 小时前
军工保密资质|筑牢涉密科研生产安全底线
人工智能·安全
lazy H2 小时前
【计算机网络】第 12 篇:IPv6 详解——地址格式、地址类型与双栈网络
网络·经验分享·后端·学习·计算机网络·408
(●—●)橘子……2 小时前
力扣 第525场周赛 练习理解
数据结构·python·学习·算法·leetcode
元岳数字人小元2 小时前
告别云端依赖,数字人本地部署筑牢项目安全底座
人工智能·安全·架构·开源·人机交互·交互
一只QAQ2 小时前
python语法学习
linux·python·学习
東隅已逝,桑榆非晚2 小时前
map和set的使用
数据结构·c++·笔记·学习
dadaobusi2 小时前
error:field ifru_addr has incomplete type sockaddr
学习