免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3281 | 回复: 2

--缓冲区溢出思想-- [复制链接]

论坛徽章:
0
发表于 2005-05-17 20:48 |显示全部楼层
大家有些人对关于缓冲区溢出攻击问题比较模糊。\r\n我想当你知道什么是缓冲区,怎么样溢出,缓冲区溢出后做什么?\r\n这些道理你懂了以后,就会知道缓冲区溢出是不是限制特定的语言或是\r\n应用程序的BUG了.\r\n\r\n像典型C语言的缓冲区溢出例子[1],大部分使用strcpy()函数[2],为什么?\r\n因为这个函数有BUG,不检查越界问题[3]。\r\n所以,导缓冲区溢出攻击.针对这个例子,什么是缓冲区?缓冲区是调用这个\r\n函数时候的堆栈(为临时变量分配空间)空间.怎么样溢出?由于不\r\n检查越界问题,用原字符串(长的)复制给目标字符串(短的),\r\n这样导致了原字符串(长的)覆盖了预先分配给目标字符串(短的)空间以后\r\n的空间内容,当然,是用特定的值(一个跳转地址)覆盖了特定的位置(eip取值\r\n的地方).缓冲区溢出后做什么?然后跳(上边溢出的结果)到事先准备的一段通\r\n常叫做\"shellcode\"的代码段上执行.这个\"shellcode\"的作用可以和任何应\r\n用程序一样,但是,这是理想的状态.实际由于受到空间的限制,通常\"shellcode\"比较小.\r\n\r\n同样是perl的话,这个缓冲区溢出攻击问题比较少,因为,perl核心VM对越界问\r\n题提供很好检查.\r\n\r\n结合上边的说明,你可以考虑一下,如果有一个应用程序使用了C语言编写,并且,使用了\r\n像strcpy()函数(不检查越界问题),然后由用户输入源字符串!\r\n那我们认为这个程序的存在缓冲区溢出攻击问题。因为,一些恶意的用户可能精心布置一个\r\n字符串作为源字符串输入给程序,那将导致程序被缓冲区溢出攻击!\r\n\r\n上述还说明一个问题,就是\"越界问题\"基本是导致缓冲区溢出攻击一大诱因.\r\n任何语言只要对\"越界问题\"检查比较松散的话,那这个语言容易遭受缓冲区溢出攻击。\r\n但是,我们也要知道缓冲区溢出攻击其实是利用了语言,函数或者程序的BUG。\r\n如果,你的程序不存在这样的BUG,那缓冲区溢出攻击是不可能产生的。\r\n\r\n\r\n\r\n[1]\r\n#include <stdio.h>;\r\n#include <string.h>;\r\nchar src[] =\r\n\"jjjjjjjjjj==ADDR\";\r\nint main (void)\r\n{\r\n    char dest[8];\r\n    strcpy (dest, src);\r\n}\r\n这个程序只是为了说明缓冲区溢出例子,我并没有实际测试过是否可以使用。\r\nsrc字符串的组成可以包含\"shellcode+溢出后用的跳转地址\",这个src字符\r\n串的长度在相对的条件下是固定的。还有\"shellcode\"和\"跳转地址\"是根据不同的语言,程序,系统等的不同而变化的,当然,这些内容到底是什么也就是\r\n研究缓冲区溢出攻击的人,所研究的主要内容。\r\n[2]char        *_Cdecl strcpy        (char *dest, const char *src);\r\n这个是strcpy()的原型声明,这个函数声明在string.h这个头文件里边。\r\n作用是把const char *src所指向的字符串,符值给char *dest所指向的地址空间。\r\n[3]strcpy()不检查char *src所指向的字符串的长度是否超出\r\n预留给char *dest所指向的地址空间。\r\n[4]通常,我们把一个针对某BUG缓冲区溢出攻击的应用程序叫做\"exploit\"。

论坛徽章:
0
发表于 2005-05-18 00:03 |显示全部楼层

--缓冲区溢出思想--

可以让我看懂一点溢出的样子,深得还是不是很懂,可否再细一点,先顶一下了,谢谢

论坛徽章:
0
发表于 2005-05-18 09:56 |显示全部楼层

--缓冲区溢出思想--

1.stack溢出是最初级的一种,strcpy()通常只用在演示教学文档\r\n除了栈溢出,还有很多其他的攻击方式\r\n\r\n2.这种技术寿命也不长了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP