|
|
| 首页 | 技术文章 | 软件下载 | 博客 | 论坛 | 精品教程 | 黑客动画 | 视频资源 | 在线服务 | 黑客游戏 | | ||||
|
|
||||||||
|
||||||||
|
|||||
| 缓冲区溢出原理浅析以及防护 | |||||
作者:佚名 文章来源:网络 点击数: 更新时间:2007-9-10 ![]() |
|||||
|
缓冲区溢出攻击之所以常见,是因为它太常见了,且易于实现, 这完全是软件发展史上不可避免的问题. 缓冲区漏洞是程序员在编写程序时未检查内存空间,导致内存泄漏而引起,以下我们先来简单了解一下它: 一、认识缓冲区溢出 缓冲溢出是一种系统攻击的手段,借着在程序缓冲区编写超出其长度的代码,造成溢出,从而破坏其堆栈,使程序执行攻击者在程序地址空间中早已安排好的代码,以达到其目的. 一般黑客攻击root程序,然后执行类似exec(sh)的代码获得root的shell. 它造成了两种严重的后果: 1. 覆盖堆栈的相邻单元. 使程序执行失败, 严重可导致系统崩溃. 2. 可执行认识指令代码,最后获得系统root特级权限. 现在很多人使用C或C++编写程序,但同时太多的人忽略了对其的数组边界检查和类型安全检查,所以现今的大多数溢出都和C语言有关, C语言中中有可能产生溢出的函数有:char s[n],strlen(s),strcpy(dst, src),p=malloc(n),strcat(s,suffix)等等,所以我们要尽可能地避免使用这些危险函数,即使使用,也一定要做严格的检查.为容易理解,我们来看一个简单的程序: /* * example.c * written by Devil_Angel <Devil___Angel@126.com> * gcc –o example example.c */ void func(char * str) { char buf[8]; strcpy(buf, str); printf(“%sn”,buf); } int main(int argc, char * argv[]) { If(argc >1) Func(argv[1]); }//end of main
|
|||||
| 文章录入:IceRiver 责任编辑:admin | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| CISCO IOS NHRP 功能中存在缓 雅虎窗件曝出缓冲区溢出漏洞 Linux下防范缓冲区溢出攻击的 雅虎通8.0爆缓冲区溢出漏洞 缓冲区溢出 十年来攻击和防 HP Tru64 UNIX libpthread本 WFTPD Pro APPE命令缓冲区溢 缓冲区溢出解密(三) 缓冲区溢出解密(二) Unix系列shell程序编写(上) |
网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!) |
| 关于我们 - 版权声明 - 帮助(?) - 广告服务 - 联系我们 - 友情链接 - 用户注册 - | Powered by ICE RIVER - STUDIO |
| » CnXHacker.CoM | © CopyRight 2002-2006, CnXHacker.CoM™, Inc. All Rights Reserved. |