添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
乖乖的牛腩  ·  Traceback (most ...·  4 月前    · 
大气的眼镜  ·  Python VTK STL ...·  11 月前    · 
可以利用它执行非授权指令,甚至可以取得系统特权,进而进行各种非法操作。 缓冲区 溢出攻击有多种英文名称:buffer overflow,buffer overrun,smash the stack,trash the stack,scribble the stack, mangle the stack, memory leak,overrun screw;它们指的都是同一种攻击手段。第一个缓冲区溢出攻击--Morris 蠕虫 ,发生在二十年前,它曾造成了全世界6000多台网络 服务器 瘫痪。 在当前网络与分布式 系统安全 中,被广泛利用的50%以上都是缓冲区溢出,其中最著名的例子是1988年利用fingerd漏洞的蠕虫。而 缓冲区 溢出中,最为危险的是 堆栈溢出 ,因为入侵者可以利用堆栈溢出,在函数返回时改变返回程序的地址,让其跳转到任意地址,带来的危害一种是程序崩溃导致拒绝服务,另外一种就是跳转并且执行一段 恶意代码 ,比如得到shell,然后为所欲为 [1] 通过往程序的 缓冲区 写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的 堆栈 ,使程序转而执行其它指令,以达到攻击的目的。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。例如下面程序: 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,可以对系统进行任意操作了。 缓冲区溢出攻击之所以成为一种常见安全攻击手段其原因在于 缓冲区溢出漏洞 太普遍了,并且易于实现。而且,缓冲区溢出成为远程攻击的主要手段其原因在于 缓冲区 溢出漏洞给予了攻击者他所想要的一切:植入并且执行攻击代码。被植入的攻击代码以一定的权限运行有缓冲区溢出漏洞的程序,从而得到被攻击主机的控制权。 [1]  蒋卫华, 李伟华, 杜君. 缓冲区溢出攻击:原理,防御及检测[J]. 计算机工程, 2003, 29(10):5-7. [2]  Foster J C , 蔡勉. 缓冲区溢出攻击[M]. 清华大学出版社, 2006. [3]  汪立东, 方滨兴. UNIX缓冲区溢出攻击:技术原理、防范与检测[J]. 计算机工程与应用, 2000, 36(2):12-14.