- 1、本文档共128页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
项目7缓冲区溢出攻防技术主讲XXX
目录2小任务1一个存在栈溢出漏洞的小程序4321小任务2利用栈溢出漏洞打开命令提示符小任务3编写弹出计算器的ShellCode小任务4利用msfvenom自动生成ShellCode5大任务SLmail5.5缓冲区溢出利用
小任务1一个存在栈溢出漏洞的小程序3现在有一个存在栈溢出漏洞的C语言程序,适当修改程序,使栈溢出,并分析程序异常原因。任务描述
小任务1一个存在栈溢出漏洞的小程序4了解缓冲区,熟悉缓冲区溢出概念理解缓冲区溢出攻击原理
51.缓冲区溢出知识储备缓冲区是程序运行期间在内存中分配的包含相同数据类型实例的一个连续的计算机内存块,可用于保存包括字符数组在内的各种数据类型溢出就是所填充的数据超出了原有的缓冲区边界缓冲区溢出(BufferOverflow),就是向固定长度的缓冲区中写入超出其预告分配长度的内容,造成缓冲区中数据的溢出,从而覆盖了缓冲区周围的内存空间
61.缓冲区溢出知识储备攻击者将精心构造的攻击代码植入有缓冲区溢出漏洞的程序执行体中,导致原有执行流程的改变,让程序转而执行特殊的指令,最终获取目标系统的控制权,这就是缓冲区溢出攻击。缓冲区溢出攻击具有破坏性:停止服务、服务器数据被删除、服务器死机缓冲区溢出攻击还具有很强的隐藏性:很难发现,因为攻击时间短、防火墙难以监测、攻击具有随机性和不可预测性
72.缓冲区堆栈溢出攻击原理知识储备环境变量命令行参数栈(Stack)堆(Heap).bss.data.text共享库环境变量、argv、argc编译器分配的先进后出的内存区域动态改变的内存区域未初始化的全局或静态变量初始化的全局或静态变量指令、只读数据内存高地址内存低地址
82.缓冲区堆栈溢出攻击原理知识储备进程在内存中的映像被分为三个区域:文本(.text)、数据(.bss及.data)和堆栈文本区由程序确定,包括只读数据和代码指令。文本区通常为只读,任何对该区的写操作都会导致段错误(SegmentationFault)数据区包含未初始化和已初始化的全局数据,其中未初始化的全局或静态变量保存在.bss区域,而初始化的全局或静态变量保存在.data区域堆栈区存放动态变量及函数调用的现场数据。
92.缓冲区堆栈溢出攻击原理知识储备堆(Heap)是大小不固定,可动态扩张或缩减的内存区域。堆的内存扩展方向是由低地址向高地址扩展栈(Stack)一般大小固定,由编译器进行自动分配(包括静态分配和动态分配)。栈的内存扩展方向是与堆正好相反,由高地址向低地址扩展,遵循先进后出(FirstInLastOut,FILO)原则缓冲区溢出攻击按攻击原理可分为栈溢出、堆溢出、整型溢出和格式化字符串溢出等攻击技术以攻击方式分类,可分为本地溢出和远程溢出
102.缓冲区堆栈溢出攻击原理知识储备缓冲区溢出攻击一般分为三个步骤向有漏洞程序的缓冲区中注入攻击字符串利用漏洞改写内存的特定数据,如返回地址,使程序执行流程跳转到预先植入的ShellCode执行该ShellCode使攻击者取得被攻击主机的控制权
112.缓冲区堆栈溢出攻击原理知识储备某函数一局部变量内存分配空间寄存器数据保留地址调用函数返回地址空操作(NOP)攻击代码攻击代码地址堆栈顶端堆栈底端局部变量空间
任务实施Ollydbg栈溢出缓冲区溢出缓冲区小任务1一个存在栈溢出漏洞的小程序利用OD(Ollydbg)工具调试分析存在栈溢出漏洞的程序,从而理解缓冲区溢出及利用原理1.思路与方法堆溢出
任务实施小任务1一个存在栈溢出漏洞的小程序(1)1台安装有OD、MicrosoftVisualC++6.0的Windows7主机2.准备
任务实施(1)编写存在缓冲区溢出漏洞的程序①新建C++源文件在MicrosoftVisualC++6.0单击“文件”菜单,选择“新建”命令单击“文件”选项卡选中“C++SourceFile”项设置好文件名及保存位置,然后点击“确定”按钮3.步骤小任务1一个存在栈溢出漏洞的小程序
任务实施(1)编写存在缓冲区溢出漏洞的程序②键入如下代码3.步骤小任务1一个存在栈溢出漏洞的小程序#includestdio.h#includestring.hintfun(char*cpybuf){charbf[8];strcpy(bf,cpybuf);return0;}intmain(){printf(Stackoverflow!\n);charbuf[]=1234;#尝试更改将其更改aaabbbbfun(buf);return0;}
任务实施(1)编写存在缓冲区溢出
您可能关注的文档
- 专题20.7第20章一次函数单元测试(能力过关卷)-2021-2022学年八年级数学下册尖子生同步培优题典(原卷版)【沪教版】.pdf
- 07第五章吸睛之笔1.pptx
- 专题20.8第20章一次函数单元测试(培优提升卷)-2021-2022学年八年级数学下册尖子生同步培优题典(解析版)【沪教版】.pdf
- 07飞行控制计算机的维护.pdf
- 专题20.8第20章一次函数单元测试(培优提升卷)-2021-2022学年八年级数学下册尖子生同步培优题典(原卷版)【沪教版】.pdf
- 07-课程教案-如何实现短视频作品高效涨粉-new.pdf
- 07项目七Python文件操作及异常处理.pptx
- 专题20:坐标系中的平行四边形存在性问题及其它存在性问题(原卷版).pdf
- 7.2列表的创建与访问.pptx
- 专题20表示一组数据分布的量(4个知识点2种题型)(解析版).pdf
文档评论(0)