探索CSAPP实验:缓冲区溢出攻击实战与C语言底层剖析

版权申诉
0 下载量 152 浏览量 更新于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语言编程安全性的认识,并且学会如何防范和应对缓冲区溢出这类常见的安全漏洞。