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

计算机系统基础 bufbomb 实验三

听报告无事,顺手写下做过的实验报告,话不多说,开始正文

1、实验目的加深对IA-32函数调用规则和栈帧结构的理解。

2、实验原理对目标程序实施缓冲区溢出攻击,通过造成缓冲区溢出来破坏目标程序的栈帧结构,继而执行一些原来程序中没有的行为。

3

实验题目1、Smoke(让目标程序调用smoke函数)

(答案––smoke.txt)

首先查看汇编代码,可以看到调用了gets函数,存在缓冲区溢出漏洞,缓冲查看缓冲区区大小为40,因此偏移量是40+4,查找smoke函数地址,因为没开PIE,所以是固定的绝对地址0x08049655,因此便得出答案,成功截图如上

实验题目2、Fizz(让目标程序使用特定参数调用Fizz函数)

(答案––fizz.txt)

首先是偏移量与前一题相同,找出fizz函数的地址为0x08049681,由汇编截图可以看出fizz函数会将位于ebp+8即第二个参数与cookie值比较,cookie值为0x28eaa8f8,

因此只需要将cookie覆盖到参数的位置,随后跳转到fizz函数时便可作为fizz的参数,因此构造payload如上图,成功截图如下

实验题目3、Bang(让目标程序调用Bang函数,并篡改全局变量)

偏移量不变,题目要求修改全局变量为cookie值并跳到bang函数,因此想到shellcode,缓冲区的权限为可写可执行,因此将shellcode放在缓冲区开头即可,查看全局变量地址为0x0804E120,cookie值为0x28eaa8f8,查看bang函数地址为0x080496D4,

因此先写出需要的汇编代码再将其转为机器指令,如上图,得出需要的shellcode,接下来通过调试得到缓冲区起始位置,调试图如上,eax的值即为缓冲区起始位置 0x55683a58 ,需要将返回地址覆盖为这个值,随后便可执行shellcode,因此答案以及成功截图如下

实验题目4、Boom(让目标程序返回test函数,但不返回1,而是返回cookie值)

这一题和上一题思路类似,也是构造shellcode,需要将返回值修改为cookie值0x28eaa8f8,并且返回到test函数,因为返回原函数的原因,必须保持ebp不变,透过汇编可以看出返回值存在了eax中,因此需要修改eax的值为cookie,并在修改之后返回到原函数call的下一条指令,地址为0x080497FE,缓冲区起始位置不变

接下来通过调试获得ebp的值为0x55683aa0,构造汇编指令并转为机器指令如上图,因此答案以及成功截图如下

实验题目5、Nitro(让目标程序返回testn函数,但不返回1,而是返回cookie值)

这一题每次运行时栈内的地址会变,即缓冲区起始位置不确定,但代码段的地址不变,即函数的绝对地址不变,模仿了ASLR保护机制,NX没开,方法有很多种,比如说将栈迁移到代码段从而获得固定地址,或者利用jmp esp等特殊gadget,也可以使用滑雪橇。

栈迁移有些麻烦,因此舍弃,尝试第二种方法,利用ROPgadget寻找发现没有合适的gadget,因此行不通,结合高达520字节的缓冲区大小,看来这一题的标准答案便是滑雪橇了

由于栈地址不确定,因此不能直接给ebp赋值,因此可以利用esp与ebp的相对偏移来赋值,由如上汇编可知,一个push和一个sub使esp与ebp相差0x14+0x4,当执行完getbuf的leave ret时esp就指向ebp-0x18的位置,之后再执行shellcode时esp也不会变,随后查看call下一条指令的地址为0x08049879, 接下来通过调试确定缓冲区起始地址的大概范围,通过五次运行,地址最大的一次为0x556838e8,因此将这个作为入口点,前面的字节全是90,也就是eip+1(nop)的机器指令,由此一路滑到shellcode并执行,编写汇编代码并转为机器指令如上图,答案与成功截图如下

套盾

第一次在csdn上发表文章,所以文字排版等方面可能不太熟练,实验中有些细节可能说的不太清楚,欢迎反驳本菜鸟或与本菜鸟交流

₍˄·͈༝·͈˄*₎◞ ̑̑

注:这是第二次修改,刚发布完发现图片转存失败,因为是用手机写的,诸多不便,图片可能不清楚,如果因为此而给一些同学造成困扰的话,我很抱歉,请及时告诉我,我会尽快回答_(:з」∠)_

http://www.cnnetsun.cn/news/139021.html

相关文章:

  • Tomcat内存机制以及按场景调优
  • ConvertX:自托管的在线文件转换器
  • 2025年支持企业实现社会价值与商业价值的战略
  • 停车场PLC+HMI实战手记
  • Web3超级应用革命:聚合交易+社交图谱,如何重构10亿用户的数字生活?
  • 三维机动目标跟踪这事儿,搞过的人都知道模型切换最头疼。今天咱们直接上硬菜,聊聊怎么用IMM+UKF的组合拳搞定这个问题。先上段核心代码镇楼
  • 行车机械手系统组态王6.53仿真6运行效果视频
  • 金融 Agent 安全验证黄金标准出炉(仅限内部流传的5大原则曝光)
  • 基于无权重系数占空比模型预测转矩永磁同步电机控制
  • 打破行业边界!《水龙吟》用“生态化开发”,让IP价值不止于剧集
  • 如何用农业Agent将化肥成本降低40%?3个真实案例深度拆解
  • 【游戏 Agent 的 AI 训练终极指南】:从零构建高智能游戏AI的7大核心技术
  • 生物制药Agent实验优化实战(罕见高成功率方案曝光)
  • 【专家亲授】物流Transport Agent高可用架构设计:9个不可忽视的设计原则
  • 边缘AI推理速度提升300%?揭秘模型压缩与硬件协同优化黑科技
  • AI Agent如何重塑学习路径?6个真实案例看懂推荐系统的威力
  • 从毫米到微米:实现工业机器人Agent亚级精度的5种核心技术路径
  • MATLAB实现数据批量处理与图像处理GUI设计:风速时程模拟之旅
  • 企业级云渲染的国产化选型指南
  • java计算机毕业设计蔬菜种植园管理系统 基于SpringBoot的农作物智慧种植综合管理平台 B/S架构下的蔬菜基地生产运营一体化系统
  • 桁架机械手控制系统:核心构成与智能化操控
  • 探索SAR成像之三维BP算法:从原理到MATLAB实现
  • 复现“全介质超表面的电磁诱导透明模拟”:从原理到FDTD仿真实践
  • gGoogle新闻开源检索库-gnews ————直接放在下面 先装后使用
  • 核级Agent容灾机制构建:从单点故障到零停机的跃迁之路
  • 从静态到动态:重构康复Agent方案调整范式,实现个性化治疗跃迁
  • 【自动驾驶Agent环境感知核心技术】:揭秘多传感器融合的底层逻辑与实战优化策略
  • iOS与Android符号还原服务统一重构实践总结
  • 隧道代理技术解析:它为何成为数据安全传输的首选?
  • 网络安全入门必收藏!零基础小白5步实战指南,从零到黑客高手