- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验单元四. 缓冲区溢出攻击技术
一、实验目的和要求
掌握缓冲区溢出的原理;
掌握缓冲区溢出漏洞的利用技巧;
理解缓冲区溢出漏洞的防范措施。
二、实验内容和原理
缓冲区溢出的原理:通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。造成缓冲区溢出的根本原因是程序中缺少错误检测。
当然,随便往缓冲区中填东西造成它溢出一般只会出现“分段错误”( ),而不能达到攻击的目的。最常见的手段是通过制造缓冲区溢出使程序运行一个用户 ,再通过 执行其它命令。如果该程序属于 ,攻击者就获得了一个有 权限的 ,可以对系统进行任意操作。 缓冲区溢出攻击之所以成为一种常见安全攻击手段其原因在于缓冲区溢出漏洞太普遍了,并且易于实现。而且,缓冲区溢出成为远程攻击的主要手段其原因在于缓冲区溢出漏洞给予了攻击者他所想要的一切:植入并且执行攻击代码。被植入的攻击代码以一定的权限运行有缓冲区溢出漏洞的程序,从而得到被攻击主机的控制权。 缓冲区溢出漏洞和攻击有很多种形式,而相应的防范手段也随者攻击方法的不同而不同。
三、实验项目
缓冲区溢出产生窗口;
改写函数返回地址;
的编写;
的植入。
四、实验所需软硬件
)仪器设备条件:及其网络环境;
)物质条件: 、、、 编译器等,;
)相关文献资料:课件及网上收集的资料。
五、操作方法与实验步骤
缓冲区溢出漏洞产生的的基本原理和攻击方法
缓冲区溢出模拟程序
程序源代码如下:
[];
[];
()
{
[];
(, )内存拷贝,如果长度超过,则出现缓冲区溢出
( [])
{
(\\[]);
}
(\);
;
}
运行该程序产生访问异常:
由于拷贝字符串时产生缓冲区溢出,用“”字符串的值覆盖了原来的值,所以函数返回时指向,引发访问异常。
运行命令窗口的
测试代码如下:
[]
\\\\
\\\\
\\\\ 覆盖
\\\\ 覆盖, 地址
\\\\\\\\\\\\
\\\\\\\\\\\\
\\\\\\\\\\\\
\\\\\\\\\\\\
\\\\\
\\\\ 的地址
\\
\\\\\\\\\\\\
\\\\\\\\\\\\
\\\\\\\\\\\\
\\\\\\\\\\\\
\
\\\\ 的地址
\\;
()
{
[];
(, );
( [])
{
(\\[]);
}
(\);
;
}
测试代码运行效果如下:
由于把函数的返回地址替换成了 的地址,函数返回的时候就会执行我们的代码。该,运行命令窗口。
缓冲区溢出漏洞分析和利用
溢出点定位
溢出点定位源代码
(*)();
()
{
[];
[];
;
[];
;
;
;
;
[] ;
[] ;
()加载当前目录的
() (, )获得的调用地址
填充参数
(())先清零内存
(,())必须使用结束符,填充
[];
[];
[];
[];
(())先清零内存
(,())必须使用结束符,填充
()()调用
();
;
}
程序运行效果如下:
可以看到错误访问地址为,即为‘’的编码,所以成功得定位了溢出点。
漏洞利用
漏洞利用的源代码如下:
(*)();
[]
\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\
\\\\\\\\\\\\\\\\
\\\\\\\\;
()
{
[];
[];
;
[];
;
;
;
[] ;
[] ;
();
() (, );
(());
(());
(());
(,());
();
[] 的地址
[];
[];
[];
()();
();
}
漏洞利用的效果如下:
可以看到成功的利用该漏洞,弹出了一个对话框。
溢出漏洞分析与利用
溢出点定位
.构造
中包含个,这个
原创力文档


文档评论(0)