완료됨
스택버퍼 오버플로우 ex3 문제
고정된 크기의 버퍼보다 더 긴 데이터를 입력받아 스택 버퍼 오버플로우가 발생한다는데 어떻게 푸는지 잘 이해가 안됩니다
#시스템해킹
작성자 정보
답변
1
Karatus
워게임: 50
char win[4];
int size;
char buf[24];
여기서 buf
라는 배열이 24
라는 크기로 고정이 되어 있습니다.
하지만 개발자의 실수, 혹은 시스템 상의 오류로 인하여 사용자가 24개의 문자 이상
을 입력할 수 있는 경우가 있습니다.
이때 사용자는 스택에 확보된 크기 이상을 넘어 값을 입력할 수 있고 이를 스택 버퍼 오버플로우
라고 부릅니다.
결국 이 취약점은 사용자가 사용자의 의도대로 프로그램을 조종함으로서 개발자가 의도한 대로 프로그램을 실행시키지 못하고 오류를 일으키게 만드는 것입니다.
ex3에서 보자면, 근처에(정확히는 스택상 입력되는 버퍼보다 높은 주소에 위치한) 있는 다른 값(size, win 같은 변수들)들을 임의대로 쓸 수 있다는 것입니다.