探索CSAPP实验:缓冲区溢出攻击实战与C语言底层剖析
版权申诉
188 浏览量
更新于2024-06-19
收藏 1002KB DOCX 举报
本次实验报告主要聚焦于【BUPT计算机系统基础】课程中的缓冲区溢出攻击实验,旨在通过实际操作加深学生对C语言程序机器级表示的理解,以及熟练运用GDB调试器进行程序分析。实验涉及到的目标是两个存在缓冲区溢出漏洞的程序:ctarget和rtarget,它们分别采用不同的攻击方式,即代码注入和Return-Oriented Programming (ROP)。
首先,实验的目的是让参与者掌握C语言程序在x86-64架构下的机器级表示,理解控制结构如何转化为基本指令,并了解这些指令如何实现程序流程。此外,通过实践,学生将深入理解软件漏洞的潜在威胁,学习如何利用缓冲区溢出漏洞进行安全攻击。
实验环境设置在Linux服务器上,服务器IP为10.120.11.12,服务器会在指定时间(2022年11月28日23:59)关闭。学生需利用Objdump反汇编工具和GDB调试工具来进行逆向工程分析,找出返回地址在堆栈中的位置以及攻击所需的机器码。
实验内容分为五个阶段,难度逐渐增加,每个阶段都有明确的分数分配。在每个阶段,学生需要登录bupt1服务器,找到并解压名为target357.tar的文件,然后在target357目录下操作,包括查看文件列表、运行ctarget和rtarget程序、分析它们的源代码和二进制文件,识别漏洞并利用提供的工具进行攻击。在代码注入阶段,目标是输入特定字符串来调用特定函数;而在ROP阶段,学生需要找到并组合小工具来实现特定功能,最后提交得分信息。
整个实验过程不仅涉及基础的编程和调试技能,还涵盖了安全性和逆向工程的知识,对于提升学生的实践能力和理论联系实际的能力具有重要意义。通过这个实验,学生将加深对C语言编程安全性的认识,并且学会如何防范和应对缓冲区溢出这类常见的安全漏洞。
2007-10-14 上传
2023-03-23 上传
2023-03-23 上传
2023-03-23 上传
点击了解资源详情
2024-01-09 上传
2021-01-06 上传
2021-05-14 上传
手把手教你学AI
- 粉丝: 9252
- 资源: 4693
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建