问答文章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

我来回答

3个回答

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

什么是缓冲区溢出

单的说就是程序对接受的输入数据没有进行有效的检测导致错误,后果可能造成程序崩溃或者执行攻击者的命令,详细的资料可以看unsecret.org的漏洞利用栏目 。
缓冲区溢出的概念

  缓冲区溢出好比是将十磅的糖放进一个只能装五磅的容器里……

  堆栈溢出(又称缓冲区溢出)攻击是最常用的黑客技术之一。我们知道,UNIX本身以及其上的许多应用程序都是用C语言编写的,C语言不检查缓冲区的边界。在某些情况下,如果用户输入的数据长度超过应用程序给定的缓冲区,就会覆盖其他数据区。这称作“堆栈溢出或缓冲溢出”。

  一般情况下,覆盖其他数据区的数据是没有意义的,最多造成应用程序错误。但是,如果输入的数据是经过“黑客”精心设计的,覆盖堆栈的数据恰恰是黑客的入侵程序代码,黑客就获取了程序的控制权。如果该程序恰好是以root运行的,黑客就获得了root权限,然后他就可以编译黑客程序、留下入侵后门等,实施进一步地攻击。按照这种原理进行的黑客入侵就叫做“堆栈溢出攻击”。

  为了便于理解,我们不妨打个比方。缓冲区溢出好比是将十磅的糖放进一个只能装五磅的容器里。一旦该容器放满了,余下的部分就溢出在柜台和地板上,弄得一团糟。由于计算机程序的编写者写了一些编码,但是这些编码没有对目的区域或缓冲区——五磅的容器——做适当的检查,看它们是否够大,能否完全装入新的内容——十磅的糖,结果可能造成缓冲区溢出的产生。如果打算被放进新地方的数据不适合,溢得到处都是,该数据也会制造很多麻烦。但是,如果缓冲区仅仅溢出,这只是一个问题。到此时为止,它还没有破坏性。当糖溢出时,柜台被盖住。可以把糖擦掉或用吸尘器吸走,还柜台本来面貌。与之相对的是,当缓冲区溢出时,过剩的信息覆盖的是计算机内存中以前的内容。除非这些被覆盖的内容被保存或能够恢复,否则就会永远丢失。

  在丢失的信息里有能够被程序调用的子程序的列表信息,直到缓冲区溢出发生。另外,给那些子程序的信息——参数——也丢失了。这意味着程序不能得到足够的信息从子程序返回,以完成它的任务。就像一个人步行穿过沙漠。如果他依赖于他的足迹走回头路,当沙暴来袭抹去了这些痕迹时,他将迷失在沙漠中。这个问题比程序仅仅迷失方向严重多了。入侵者用精心编写的入侵代码(一种恶意程序)使缓冲区溢出,然后告诉程序依据预设的方法处理缓冲区,并且执行。此时的程序已经完全被入侵者操纵了。

  入侵者经常改编现有的应用程序运行不同的程序。例如,一个入侵者能启动一个新的程序,发送秘密文件(支票本记录,口令文件,或财产清单)给入侵者的电子邮件。这就好像不仅仅是沙暴吹了脚印,而且后来者也会踩出新的脚印,将我们的迷路者领向不同的地方,他自己一无所知的地方。

缓冲区溢出的处理

  你屋子里的门和窗户越少,入侵者进入的方式就越少……

  由于缓冲区溢出是一个编程问题,所以只能通过修复被破坏的程序的代码而解决问题。如果你没有源代码,从上面“堆栈溢出攻击”的原理可以看出,要防止此类攻击,我们可以:

1、开放程序时仔细检查溢出情况,不允许数据溢出缓冲区。由于编程和编程语言的原因,这非常困难,而且不适合大量已经在使用的程序;

2、使用检查堆栈溢出的编译器或者在程序中加入某些记号,以便程序运行时确认禁止黑客有意造成的溢出。问题是无法针对已有程序,对新程序来讲,需要修改编译器;

3、经常检查你的操作系统和应用程序提供商的站点,一旦发现他们提供的补丁程序,就马上下载并且应用在系统上,这是最好的方法。但是系统管理员总要比攻击者慢一步,如果这个有问题的软件是可选的,甚至是临时的,把它从你的系统中删除。举另外一个例子,你屋子里的门和窗户越少,入侵者进入的方式就越少。

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

缓冲区溢出是指当计算机程序向缓冲区内填充的数据位数超过了缓冲区本身的容量。溢出的数据覆盖在合法数据上。理想情况是,程序检查数据长度并且不允许输入超过缓冲区长度的字符串。但是绝大多数程序都会假设数据长度总是与所分配的存储空间相匹配,这就为缓冲区溢出埋下隐患。操作系统所使用的缓冲区又被称为堆栈,在各个操作进程之间,指令被临时存储在堆栈当中,堆栈也会出现缓冲区溢出。

当一个超长的数据进入到缓冲区时,超出部分就会被写入其他缓冲区,其他缓冲区存放的可能是数据、下一条指令的指针,或者是其他程序的输出内容,这些内容都被覆盖或者破坏掉。可见一小部分数据或者一套指令的溢出就可能导致一个程序或者操作系统崩溃。

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

学到东西了
呵呵
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
医保专线如何网络连接 医保专线为什么不能网络连接 小米椒是什么 生蚝的营养价值如何?怎么吃? 公文写作请示的范文 犯欺诈发行股票、债券罪会判多久 微信视频号开通粉丝团方法步骤 视频号如何开通粉丝团 微信视频号如何加入粉丝团和群聊? 没有经过当地武装部当武警的人国家军队承认吗 要走兵时市武装部发现我有点小毛病拉着我去查体我可不可以拒绝不去_百... 我举报了武装部会是什么后果 怎么进行缓冲区溢出攻击? 树的年轮较密的向着( )面,较疏的向着什么面? 如何理解缓冲区溢出攻击? 什么是缓冲区溢出 百度云登录时为什么显示网络异常,十分钟后登录 在大兴安岭,大叔年轮较密的一面向着什么方,较疏的一面向着什么方向 百度云网络异常 百度云为什么总是等待网络? 为什么电脑的百度云老是显示“网络不给力,请稍后重试” 梦见在海滩上捡了超多硬币 昨晚做梦在水里捡到好多硬币,是不是发财梦。 梦见发大水从水里捡一元硬币和五角硬币 传奇SF1.95金牛合击.无内功 传奇私服1.95刺影版的刺杀挂那个好,打广告的靠边。 1.95传奇私服如何强行挑战 传奇私服1.95刺影版本的,用什么挂牛逼? 传奇私服1.95皓月传奇 会长如何把整个行会叫到身边(不是记忆) - 信息提示 我玩1.95的传奇私服一进登陆界面就黑屏只能听到声音,请高手指点,谢谢 传奇1.95版私服战士属性点应该加什么? 缓冲区溢出是什么意思? 缓冲区溢出攻击原理是? 什么是缓冲区溢出漏洞? 缓冲区溢出攻击是什么意思 buffer overflow是怎么回事? 现在有必要戴口罩吗 阎罗传奇是什么侯拍的 什么是溢出攻击? 缓冲区溢出的相关知识 陈泰鸣的介绍 阎罗传奇中主题曲是谁唱歌 缓冲区溢出攻击的2.危害 睡觉旁边放两芒果对睡眠有影响吗 阎罗传奇的主题曲是什么歌??? 缓冲区溢出的防范方法 很早的一部古装片 溢出攻击的原理 买的吃的芒果放在房间会影响睡眠吗 芒果的气味能安神助眠吗? 阎王传奇第几级阎王封王