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

     

    Free Training Zone level18 풀이


     

    1. cat을 사용하여 hint 출력

    코드를 살펴보면 check 변수에 0xdeadbeef 값을 넣으면 shellout 함수가 호출되어 

    level19 shell에 접근이 가능하다 하지만 check 변수가 string 버퍼보다 이후에 선언되어

    버퍼 오버플로우로는 접근이 불가능해 보인다. 

    대신 read 함수로 1byte씩 입력 받는 값이 0x08이면 count 변수가 마이너스가 되어

    string 버퍼 주소의 마이너스 주소에 접근 할 수 있다.

     

    2. attckme 파일 복사

    gdb 분석을 위해 쓰기권한이 있는 tmp 디렉터리로 attckme 파일을 복사한다.

    3. gdb 분석

    string 버퍼는 아래와 같이 ebp-100에 위치하였다.

    check 변수는 아래와 같이 ebp-104에 위치하고 있다.

    위를 토대로 스택을 표현하면 아래와 같다.

    4. 페이로드 코드 작성

    0x08 값을 4byte 넣어주면 string[-4]에 접근하게된다. 

    접슨한  주소는 위 스택에서와 같이 check 변수의 주소이고 check 변수에 0xdeadbeef 를 넣어 

    level19 Password를 획득할 수 있다.

     

     

     

     

    728x90
    반응형

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

    [ftz] hacker school level20 풀이  (0) 2020.04.28
    [ftz] hacker school level19 풀이  (0) 2020.04.28
    [ftz] hcaker school level17 풀이  (0) 2020.04.28
    [ftz] hacker school level16 풀이  (0) 2020.04.28
    [ftz] hacker school level15 풀이  (0) 2020.04.28
상단으로