问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何理解缓冲区溢出攻击?

发布网友 发布时间:2022-04-30 16:40

我来回答

1个回答

热心网友 时间:2022-06-27 17:19


缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用软件中广泛存在。利用缓冲区溢出攻击,可以导致程序运行失败、系统当机、重新启动等后果。更为严重的是,可以利用它执行非授权指令,甚至可以取得系统特权,进而进行各种非法操作。由于C语言本身缺乏边界检查,同时很多编程人员更注重程序运行时的性能(边界检查会降低性能),因此利用C语言等开发工具开发的软件系统普遍存在着缓冲区溢出漏洞。最早的缓冲区溢出攻击是著名的Robert Morris的因特网蠕虫。1988年,Morris利用fingered程序不*长度的漏洞使缓冲区溢出,成功地获得了一个脆弱系统的存取权限,获得权限后Morris的程序会在机器上自动安装,并且千方百计去感染其他机器。结果造成互联网上6000余台服务器瘫痪,占当时联网总数的10%。虽然人们认识到了缓冲区溢出的严重危害,但由于一些不好的编程习惯,新的缓冲区溢出漏洞仍然层出不穷。


缓冲区溢出的原理

通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。例如下面程序:
void function(char *str) {
char buffer[16];
strcpy(buffer,str);
}
上面的strcpy()将直接把str中的内容copy到buffer中。这样只要str的长度大于16,就会造成buffer的溢出,使程序运行出错。存在象strcpy这样的问题的标准函数还有strcat(),sprintf(),vsprintf(),gets(),scanf()等。
当然,随便往缓冲区中填东西造成它溢出一般只会出现“分段错误”(Segmentation fault),而不能达到攻击的目的。最常见的手段是通过制造缓冲区溢出使程序运行一个用户shell,再通过shell执行其它命令。如果该程序属于root且有suid权限的话,攻击者就获得了一个有root权限的shell,可以对系统进行任意操作了。


缓冲区溢出攻击之所以成为一种常见的安全攻击手段其原因在于缓冲区溢出漏洞太普遍了,并且易于实现。而且,缓冲区溢出漏洞给予了攻击者想要的一切:植入并且执行攻击代码。被植入的攻击代码以一定的权限运行有缓冲区溢出漏洞的程序,从而得到被攻击主机的控制权。
缓冲区溢出攻击有很多种形式,相应的防卫手段也随着攻击方法的不同而不同,下面将介绍这两方面的内容。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
氢气瓶收口 Access Token & Refresh Token 详解以及使用原则 良溪村村落景点 支付宝上首度试水养老目标基金,用户如何购买? 上上下下、仔仔细细地看 叫什么看 新手创业应具备哪些条件 德阳科贸职业学院中职部招生专业有哪些?有会计专业吗? 德阳科贸职业学院一年学费是多少 格力天花机E1是什么原因造成的 山东困觉是什么意思? 什么是缓冲区溢出 百度云登录时为什么显示网络异常,十分钟后登录 在大兴安岭,大叔年轮较密的一面向着什么方,较疏的一面向着什么方向 百度云网络异常 百度云为什么总是等待网络? 为什么电脑的百度云老是显示“网络不给力,请稍后重试” 梦见在海滩上捡了超多硬币 昨晚做梦在水里捡到好多硬币,是不是发财梦。 梦见发大水从水里捡一元硬币和五角硬币 传奇SF1.95金牛合击.无内功 传奇私服1.95刺影版的刺杀挂那个好,打广告的靠边。 1.95传奇私服如何强行挑战 传奇私服1.95刺影版本的,用什么挂牛逼? 传奇私服1.95皓月传奇 会长如何把整个行会叫到身边(不是记忆) - 信息提示 我玩1.95的传奇私服一进登陆界面就黑屏只能听到声音,请高手指点,谢谢 传奇1.95版私服战士属性点应该加什么? 最火1.95传奇私服网站 1.95私服合击是什么意思? 怎么开1.95版本的传奇私服,求详细 树的年轮较密的向着( )面,较疏的向着什么面? 怎么进行缓冲区溢出攻击? 关于电脑!什么是“缓冲区溢出”? 缓冲区溢出是什么意思? 缓冲区溢出攻击原理是? 什么是缓冲区溢出漏洞? 缓冲区溢出攻击是什么意思 buffer overflow是怎么回事? 现在有必要戴口罩吗 阎罗传奇是什么侯拍的 什么是溢出攻击? 缓冲区溢出的相关知识 陈泰鸣的介绍 阎罗传奇中主题曲是谁唱歌 缓冲区溢出攻击的2.危害 睡觉旁边放两芒果对睡眠有影响吗 阎罗传奇的主题曲是什么歌??? 缓冲区溢出的防范方法 很早的一部古装片 溢出攻击的原理