새소식

인기 검색어

보안/포너블(pwnable)

Out Of Boundary

  • -

Out Of Boundary

- 버퍼의 영역을 벗어나는 인덱스에 접근할 수 있는 취약점

 

* 예제 코드(칼리리눅스에서 실행)

#include <stdio.h>

int main() {
    char buf[10]="abcdefghi";
    int input_num=0;
    
    printf("Which Index : ");
    scanf("%d",&input_num);
    
    printf("Index : %d, Value : %c\n",input_num,buf[input_num]);
    
    return 0;
}

 

위의 코드는 배열을 선언하고, 인덱스 값을 받아서 해당 인덱스에 저장된 값을 출력하는 코드이다.

 

0~8 사이의 인덱스가 입력되게 되면 정상적으로 값을 출력하게 되지만, 8을 초과하는 값을 입력하게 되었을 경우

 

사용자가 입력하는 인덱스 값을 검증하는 코드가 없기 때문에 buf 이외의 다른 영역에도 접근할 수 있게 된다.

 

0~9 사이의 값인 4를 입력했을 경우. buf[4]를 출력한다.

 

9를 초과하는 15를 입력했을 경우. buf 에는 없는 전혀 다른 값이 출력된다.

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.