Free Training Zone level17 풀이 1. cat를 사용하여 hint 출력 level16과 유사하지만 shell 함수가 빠져있다. buf 오버플로우를 이용하여 *call 포인터 변수에 환경변수에 등록한 shellcode 주소를 넣어서 shellcode를 실행 시켜 level18 shell에 접근할 수 있다. 2. attackme 복사 gdb 분석을 위해 쓰기권한이 있는 tmp 디렉터리로 attackme 파일을 복사한다. 3. gdb 분석 위 disassembler 를 스택으로 표현하면 아래와 같다. 4. shellcode 환경변수 등록 및 주소 획득 export 명령을 이용하여 41byte shellcode를 환경변수에 등록한다. 환경변수 shellcode 주소를 획득하는 코드를 작성하여..
Free Training Zone level16 풀이 1. cat를 사용하여 hint 출력 코드를 살펴보면 level15와 유사하며 buf 오버플로우를 이용하여 *call 포인터 변수에 shell 함수 주소를 전달하여 shell 함수에서 호출되는 system함수로 level16 shell 에 접근할 수 있다. 2. attackme 복사 attackme 파일을 쓰기권한이 있는 tmp 디렉터리로 복사한다. 3. gdb 분석 위 disassembler 코드를 스택으로 표현하면 아래와 같다. 다음은 shell 함수의 시작 주소이다. 4. 페이로드 코드 작성 *call 변수에 shell 시작 주소인 0x080484d0을 전달하면 level17 Password를 획득할 수 있다.
Free Training Zone level15 풀이 1. cat 명령을 사용하여 hint 출력 level14 문제와 유사하며 buf오버플로우를 이용하여 *check 포인터 변수에 0xdeadbeef 가 위치한 주소를 넣어주면 level15 shell에 접근할 수 있다. 2. attackme 복사 위 와 그림과 같이 쓰기 권한이 있는 tmp 디렉터리로 attackme 파일을 복사한다. 3. gdb 분석 위 disassembler를 스택으로 표현하면 아래와 같다. 위 그림의 빨간 박스에서 0xdeadbeef가 위치한 주소는 0x080484b0 이다. 실제로는 2byte 더한 주소에 위치에 있다. 아래그림을 참고한다. 4. 페이로드 코드 작성 0xdeadbeef 가 위치한 0x080484b2 주소를 *che..
Free Training Zone level14 풀이 1. cat 명령을 사용하여 hint 출력 코드를 살펴보면 buf의 오버플로우를 이용하여 check 변수에 0xdeadbeef 를 넣으면 level15의 shell에 접근이 가능해 보인다. 2. attackme 복사 쓰기 권한이 있는 tmp 디렉터리로 attackme 파일을 복사한다. 3. gdb 분석 위 disassembler 코드를 스택으로 표현하면 아래와 같다. 4. 페이로드 코드 작성 위 스택을 근거로 페이로드를 작성하여 level15 Password를 획득할 수 있다.
Free Training Zone level13 풀이 1. cat 명령을 사용하여 hint 출력 코드를 살펴 보면 i 에 0x1234567이 유지되도록 하고 buf의 오버플로우를 이용해 return 주소에 접근하여 shell code를 실행시키면 level14 권한의 shell에 접근이 가능해 보인다. 2. 쓰기 권한이 있는 tmp 디렉터리로 이동 3. gdb 분석 위 gdb disassembler 코드를 스택으로 표현하면 아래와 같다. 4. shell code 환경변수 등록 및 주소 찾기 위와 같이 환경변수에 shell code를 등록한 후 아래와 같이 주소를 찾는 코드를 작성하여 확인한다. 5. 페이로드 코드작성 위 스택상태를 근거로 아래와같이 페이로드 코드를 작성하여 level14 Password를..
Free Training Zone level12 풀이 1. cat 명령을 사용하여 hint 출력 2. attackme 파일 tmp 디렉터리로 복사 쓰기 권한이 있는 tmp 디렉터리로 이동하여 attackme 파일을 gdb 로 분석한다. 3. gdb 분석 hint 에서 언급한 코드에서 str[256] 은 위 빨간 박스에서 할당된다. 할당은 264만큼 받았음으로 dummy가 8byte 존재하게된다. 스택 구조를 그려보면 아래와 같다. 4. shell code 환경변수 등록 및 shell code 주소 찾기 41byte shell code는 아래와 같다. \x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46 \xcd\x80\x31\xc0\x50\x68\x2f\x..
Free Training Zone level11 풀이 1. cat 명령을 사용하여 hint 출력 2. attackme 파일 tmp 디렉터리로 복사 쓰기 권한이 있는 tmp 디렉터리로 이동하여 attackme 파일을 gdb 로 분석한다. 3. gdb 분석 hint 에서 언급한 코드에서 str[256] 은 위 빨간 박스에서 할당된다. 할당은 264만큼 받았음으로 dummy가 8byte 존재하게된다. 스택 구조를 그려보면 아래와 같다. 4. shell code 환경변수 등록 및 shell code 주소 찾기 41byte shell code는 아래와 같다. \x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46 \xcd\x80\x31\xc0\x50\x68\x2f\x..