ftz

    Level 11

    Level 11

    11번 문제부터는 BOF 문제들이 많다. 하나하나 해결해 나가보자. 소스를 실행하면 3092 권한을 가지고 문자열을 str에 복사한 후 출력하는 내용이다. 여기서 자세히 봐야 하는 부분은 !! strcpy(str, argv[1]); 이 부분이다. strncpy() 함수와는 다르게 ! strcpy는 어느정도 크기를 복사해야 할지 명시되어 있지 않다. 복사해야 될 문자열의 크기만큼 복사하게 된다. 그렇게 되면 str변수보다 argv[1]의 크기가 더 크더라도, str 배열의 크기를 넘어서 복사된다. 다른 메모리를 침범하게 되는 것이다. 이 부분을 이용하여 문제를 푼다. 정말 단순한 BOF 문제이다. 3092를 확인해 보면 level12의 id임을 확인할 수 있다. 그럼 실행파일를 gdb를 이용하여 분석을 시..

    Level 9

    Level 9

    Level 9 에서는 FTZ 에서 처음으로 Buffer OverFlow 문제가 나왔다! BOF 문제에 대해서는 많은 블로그 들에서 내용을 잘 정리해 놓았고, 설명 또한 잘 해놓은 블로그들과 책들이 굉장히 많다. 그 내용들을 참고하면 쉽게 이해할 수 있으리라 본다. BOF는 버퍼 오버플로우 라는 공격기법이다. Hint 의 내용을 보자 ! 10 Byte 씩 buf2 와 buf란 이름의 char형 배열을 선언한다. 표준입력을 40 Byte의 크기로 buf 에 할당받는다. 그런데, if 문의 조건이 아무런 입력도 받지 않는 buf2 의 내용과 "go"를 비교하는 것이다. 하지만, buf2에는 어떤한 값도 입력 받지 않는다. 어떻게 해야 할까? BOF의 개념을 공부하였다면 쉽게 이해 됫을 것 이다. buf에 40..