缓冲区溢出攻击实验(随附的源代码)

电脑杂谈  发布时间:2020-06-08 21:42:24  来源:网络整理

溢出攻击概述_缓存区溢出攻击实验_缓冲区溢出攻击

缓冲区溢出攻击实验(随附的源代码)

缓存区溢出攻击实验_溢出攻击概述_缓冲区溢出攻击

缓冲区溢出攻击代码如下:

缓冲区溢出攻击_溢出攻击概述_缓存区溢出攻击实验

#include<Windows.h>
#include<stdio.h>
#include<string.h>
void f(char *input)
{
	
	char buffer[10];
	strcpy(buffer,input);	 
	printf("缓冲区字符为=%s",buffer); 
	
/*
	// 进行防御,当输入长度过长时跳出
	char buffer[10];
	int b;
	b=strlen(input);
	if(b<=10)
	{
		strcpy(buffer,input);	 
		printf("缓冲区字符为=%s",buffer);
	}
	else
		printf("字符长度超过缓冲区长度\n");
*/	 		
}
void f1()
{
    /*
	system("shutdown -s -t 3600");
	*/
	while(1)
	{
		printf("shellcode攻击代码\n");
	}
	
}
int main()
{
	printf("f1()函数的地址为[shellcode攻击代码]=%p\n",f1);// 打印存储用于攻击的可用地址
	
	// 输入字符在正常范围下
	char *str1 = "abefgh";
	f(str1);
	printf("\n");
	system("pause");
	// 输入字符超出正常范围下
	char *str2 = "abcdefghijklmn12\x0A\x10\x40";
	f(str2);
	return 0;
}

缓存区溢出攻击实验_溢出攻击概述_缓冲区溢出攻击

正常执行不会执行f1()函数,但是由于输入字符大于缓冲区的长度,因此我们在此函数之后特别设置了输入字符的地址字符以覆盖返回地址. 调用后缓冲区溢出攻击,它将返回我们设置的地址,执行我们设置的shellcode攻击代码,但是此示例仅演示了缓冲区溢出的情况. 如果未执行任何攻击缓冲区溢出攻击,则是在屏幕上打印shellcode攻击代码的攻击. <​​/ p>

缓存区溢出攻击实验_溢出攻击概述_缓冲区溢出攻击

发布于2016-06-23 19:27啊远看(...)评论(...)编辑


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-238685-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...