OS/Linux [ftz] hacker school level12 풀이
  • 728x90
    반응형

     

    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\x2f\x73\x68\x68\x2f\x62\x69
    \x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80

    위 shell code를 export 명령을 통해 아래와 같이 환경변수에 등록해준다.

    환경변수에 등록된 shell code의 주소를 찾기 위해 아래와 같이 코드 작성 후 컴파일하여 실행한다.

    위에서 계산했던 268byte에 "A"를 채워넣고 뒤에 shell code주소를 호출하면 오버플로우에

    의해 return 실행 부분에서 shell code가 실행된다.

    level11과 다른 부분은 pipe 함수인 cat 함수를 연속 실행하여 "my-pass" 명령 입력을 받는다.

     

    아래는 작성된 페이로드 코드이다.

     

     

     

     

     

     

     

     

     

    728x90
    반응형

    'OS > Linux' 카테고리의 다른 글

    [ftz] hacker school level14 풀이  (0) 2020.04.28
    [ftz] hacker school level13 풀이  (0) 2020.04.28
    [ftz] hacker school level11 풀이  (0) 2020.04.27
    [ftz] hacker school level10 풀이  (0) 2020.04.27
    [ftz] hacker school level9 풀이  (0) 2020.04.27
상단으로