前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >网安-演示攻击缓冲区溢出漏洞实验

网安-演示攻击缓冲区溢出漏洞实验

原创
作者头像
会洗碗的CV工程师
发布于 2023-12-28 15:05:03
发布于 2023-12-28 15:05:03
5470
举报
文章被收录于专栏:LongJava学习资料LongJava学习资料

1. 实验目的

通过实验掌握缓冲区溢出的原理,通过使用缓冲区溢出攻击软件模拟入侵远程主机理解缓冲区溢出危害性,并理解防范和避免缓冲区溢出攻击的措施。

2. 实验环境

WindowsXP虚拟机系统

VC6.0

CMD命令行

3. 实验原理

缓冲区溢出(Buffer Overflow)是目前非常普遍而且危险性非常高的漏洞,在各种操作系统和应用软件中广泛存在。

利用缓冲区溢出攻击,可以使远程主机出现程序运行错误、系统死机或者重启等异常现象,它甚至可以被黑客利用,在没有任何系统帐户的条件下获得系统最高控制权,进而进行各种非法操作。

缓冲区溢出的原理很简单,类似于把水倒入杯子中,而杯子容量有限,如果倒入水的量超过杯子的容量,水就会溢出来。

缓冲区是一块用于存放数据的临时内存空间,它的长度事先已经被程序或者操作系统定义好。缓冲区类似于一个杯子,写入的数据类似于倒入的水。缓冲区溢出就是将长度超过缓冲区大小的数据写入程序的缓冲区,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其他指令。

在UNIX系统中,由于相同shell环境下,程序的堆栈地址信息是相同的,所以只要调试后找到这个堆栈地址,就可以在发生溢出时转而执行这个事先设定的程序了。并且,如果发生溢出的源程序具有管理员权限,则替换后的程序也拥有相同的管理员权限。引起缓冲区溢出的问题主要原因是C和C++本质就是不安全的(Java和C#就相对安全许多)没有边界来检查数据和指针的引用。而软件开发人员经常忽略检查边界,这就会有缓冲区溢出的风险。标准C库中还存在许多非安全字符串的操作,包括strcpy()、sprintf()、gets()、strcat、scanf、vscanf等。为了防止缓冲区溢出的发生,编程人员需要对这些存在缓冲区溢出问题的函数予以关注,增加边界限制,编写正确的代码,或者改用没有问题的函数,例如strncpy()、strncat()、snprintf()等。

4. 实验内容及步骤

1.进入虚拟机,打开文件夹如下;打开vc6软件

2.新建CPP资源文件,命名server

3.将server.txt文件内代码写入server文件,保存编译,出现如下提示;点击后确认无误

4.点击红色感叹号,提出提示后一直确认;此处是为了生成exe文件

Exe文件路径如图

6. 此时可退出;重新执行上述步骤,生成client.exe文件(此处只展示部分图片)

7. 此时项目生成文件有这些:

8. 打开命令行获取ip地址

9.打开实验工具中的Debug文件夹,找到其中的client.exe和server.exe。复制server.exe和client.exe,将他们粘贴到“c:\windows\system32”目录下。

10. 打开当前文件cmd窗口,输入如下指令;此处作用是开启server

11. 另外打开一个命令提示符,同样找到“c:\windows\system32”目录,运行命令“client.exe 192.168.1.126 8888”来攻击server。

点击回车键后,可以看见一行提示“Received: TCP Server is Connected!”,表明连接上了server。然后会弹出一个对话框,显示server.exe遇到问题需要关闭,这表明server被攻击并报错了。实验完毕

此处failed connect缘由是输入了错误的ip地址

5. 实验结果与分析

缓冲区溢出漏洞.既是系统层漏洞也是应用层漏洞

缓冲区溢出的英文是Buffer Overflow

缓冲区溢出漏洞是目前非常普遍而且危险性非常高的漏洞,在各种操作系统和应用软件中广泛存在

利用缓冲区溢出攻击,可以使远程主机出现程序运行错误、系统死机或者重启等异常现象,它甚至可以被黑客利用

缓冲区是一块用于存放数据的临时内存空间,它的长度事先已经被程序或者操作系统定义好

我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 实验目的
  • 2. 实验环境
  • 3. 实验原理
  • 4. 实验内容及步骤
  • 5. 实验结果与分析
    • 缓冲区溢出漏洞.既是系统层漏洞也是应用层漏洞
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档