计算机系统基础实验:缓冲区溢出攻击(Lab3)
需积分: 0 9 浏览量
更新于2024-07-01
收藏 964KB PDF 举报
"计算机系统基础实验-Lab3-20191 缓冲区溢出攻击"
本实验主要关注的是计算机系统基础中的一个重要概念——缓冲区溢出攻击,旨在帮助学生深入理解IA-32函数调用规则以及栈的结构。实验通过一系列递增难度的任务,让学生实际操作对名为"bufbomb"的可执行程序进行攻击,从而改变程序的内存映像,执行非预期的操作。实验共分为5个级别,从最简单的Smoke到最复杂的Nitro,逐步提升挑战性。
实验内容主要包括使用C语言,在Linux环境下利用调试工具gdb、反汇编工具objdump以及编译器gcc等,对bufbomb进行分析和攻击。实验提供的数据包包含bufbomb可执行程序、源代码bufbomb.c、用于生成独特标识的makecookie程序以及字符串转换工具hex2raw。此外,还需使用objdump反汇编bufbomb,从中获取关键信息。
在执行bufbomb时,需要提供命令行参数,参数应包括"-u"选项和学生的学号,学号会通过getcookie函数生成一个4字节的唯一序列,即"cookie"。这个cookie将在实验过程中起到验证身份的作用。
缓冲区溢出攻击是一种常见的安全漏洞利用方式,通常发生在程序处理输入数据时,当输入的数据超过了缓冲区的边界,就会覆盖相邻内存区域的内容,可能改变函数返回地址,导致执行恶意代码。在这个实验中,学生需要理解和利用这种机制,设计特定的输入来控制程序执行流程。
实验过程可能包括以下步骤:
1. 分析bufbomb的反汇编代码,理解函数调用和栈布局。
2. 识别可能的溢出点,确定溢出长度和填充数据。
3. 制造溢出,尝试改变栈上的关键值,如返回地址。
4. 设计并注入恶意payload,以执行自定义指令或跳转到已知地址。
5. 逐步解决不同级别的挑战,每个级别可能需要更高级的技巧和理解。
通过这个实验,学生不仅能掌握基本的编程和调试技能,还能了解到实际系统安全问题,增强安全意识,并了解如何防止此类漏洞的发生。这为将来从事软件开发和系统安全工作打下坚实的基础。
2020-05-17 上传
2020-05-17 上传
2022-08-03 上传
2023-03-30 上传
2023-03-30 上传
2023-03-30 上传
2023-03-23 上传
2021-11-28 上传
番皂泡
- 粉丝: 26
- 资源: 320
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器