레드햇 6.2 문제질문 포인트 몇만원 드리겠습니다 제발 알려주실분

레드햇 6.2 문제질문 포인트 몇만원 드리겠습니다 제발 알려주실분

작성일 2020.05.31댓글 1건
    게시물 수정 , 삭제는 로그인 필요

#include<stdio.h>
#include<stdilb.h>

Main(){
char buf2[10];
char buf[10];

printf("BoF Test: ");
fgets(buf,40,stdin);

if (strncwp(buf2, "halym", 6) == 0)
{
printf("Pass the BoF test! Good! \n");
}else
{
printf("Fail \n");
}
}

이 프로그램을 컴파일 하고  BoF취약점 이용해서 input값 조작으로 출력된 pass the bof test good 출력을 해야하는데 스샷좀 찍어서 알려주실분 있나요 사례 크게하겠습니다 제발알려주세요bof 취약점 발생한 이유도 알려주시면 감사하겠습니다.. 급해요 ㅠㅠ


#레드햇 6.2

profile_image 익명 작성일 -

redhat 6.2 에서 테스트를 안해봐서 모르겠지만,

buf 에서 배열 크기가 10으로 받게되어있네요.

그런데 fgets 에서는 40 size 로 받네요.

그렇게되면 buf 배열의 크기인 10보다 더 많은 (10 - 40 = -30) 양을 받게될때

overflow 가 발생하게 됩니다.

그런데 buf2 의 메모리 영역까지 침범하게 되는데 buf2 영역에 halym 문자열이 들어가면

if 의 이하의 값이 true 가 되어 pass the bof test good 이라는 메시지가 나오는 구조네요.

매우 간단한 구조이긴한데, 최근의 리눅스에서는 보호기법때문에 안될거고,

진짜 redhat 6.2 정도는 가봐야 잘 될것처럼 보이네요.