여기에서 취약점이 뭘까요 ??
, 강 혜선님이 작성#include<stdio.h>
int main(void)
{
char buf[3];
strcpy(buf,"hello world");
printf("%s\n",buf);
return 0;
}
뭘 수정해야하나요 ?
Re: 여기에서 취약점이 뭘까요 ??
, Unknown Lastname coolwinddh님이 작성버퍼의 크기가 작습니다.
헬로 월드라는 리터럴값이 메모리에 들어있는데 그것을 버퍼에 오버라이트하게 되어 배정해준 허용공간을 넘어 저장하려고 하기 때문에 일반적으로 h,e,l 3글자만 보여주고 싶어서 배열값을 작게 했지만 컴퓨터는 치명적 메모리 손상을 예고하고 있는 것입니다. 이 때문에 자신이 배정해준 메모리 주소만 사용하라는 경고를 보내는 것입니다.