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

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

此处我将文件命名为pwn

checksec pwn 查看一下保护机制

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

将文件拖入ida,得到

一段段看,先看

首先调用了write(1,ecx=esp,0x14),也就是从esp指向的地址写出0x14字节的内容,此时的esp指向最后一行的push

push 3A465443h -> 'CTF:'

push 20656874h - >"the "

push 20747261h - >"art "

push 74732073h - >"s st"

push 2774654Ch - > "Let'"

也就是输出"Let's start the CTF:"

调用read(0,ecp=esp,0x3c),从esp指向的地址写入0x3c的内容,此时esp仍指向刚刚的位置

add esp,14h -> esp+0x14

retn -> pop eip , esp+0x4

思路:因为ASLR保护,栈地址每次随机,为了确定我们输入shellcode的地址,得返回到mov ecx,esp的位置再次调用write,打印出栈地址。也就是:溢出覆盖返回地址→跳回 mov ecx,esp→write 打印 esp 泄露栈地址→手动修正偏移算出缓冲区地址→跳转栈执行 shellcode→getshell

返回虚拟机

nano exp.py

保存退出

python3 exp.py

cat flag

此题完

相关推荐
学烹饪的小胡桃1 小时前
WGCLOUD支持哪些告警方式
linux·运维·服务器·网络·安全
my05921 小时前
跳出单一信息工具局限:奥米豆构建认知与心智并行的学习范式
大数据·人工智能·python·学习
sbjdhjd1 小时前
PHP RCE 多层绕过实战:关键字过滤、空格替换与 php://filter 伪协议 | 02
网络·安全·web安全·网络安全·云计算·安全架构·rce
却道天凉_好个秋1 小时前
音视频学习(一百零五):Access Unit (AU)和RTP分包
学习·音视频·access unit·rtp分包
我星期八休息1 小时前
软件测试—从认识到BUG
考研·安全·bug
金立基胶粘2 小时前
纸袋热封胶是什么?它的特点与应用有哪些?
大数据·安全
艾莉丝努力练剑2 小时前
【AI大模型接入SDK】Gemini模型接入知识体系
java·开发语言·网络·人工智能·网络协议·学习·http
传奇开心果编程2 小时前
【Rust入门知识点学与练】第13课:枚举 Enum
开发语言·学习·rust
ysu_03142 小时前
02-单链表完全指南
c语言·数据结构·算法·leetcode