-
-
[讨论]谁能准确地说出下面代码中存在什么严重漏洞?
-
2008-11-20 19:42
6374
-
[讨论]谁能准确地说出下面代码中存在什么严重漏洞?
最近,我在Windows Server中又挖到了一处新的漏洞,通知给微软的同时,觉得这个该漏洞代表了程序员编码过程中普遍忽略了的一类安全问题(至少我在写程序的时候很少会注意到这种问题(有点掉大家胃口))。分享一些写安全代码的经验,毕竟从别人的跟头里学习经验的开销比自己载跟头才学习的开销低。于是试着把这个新漏洞的问题抽象成了下面的程序,考考大家的眼力,看看大家能不能一眼看出漏洞出现在什么位置,什么条件下会引发问题?(高手可以自动飘过)
注意只有input从外界报文获取。
char* hello(unsigned input){
char hello[] = "hello,baby!bala bala bala bala!\n";
char *buffer;
unsigned int hellosize = strlen(hello);
unsigned int bufsize = hellosize*4 + 1;
if ( (hellosize*input) > bufsize)
return NULL;
buffer = new char[bufsize];
memset(buffer,0, bufsize);
for (unsigned int i = 0; i<input; i++){
strcpy( buffer + i*hellosize, hello);
}
return buffer;
}
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课