System Security/FTZ

FTZ level9

The_j.n 2015. 8. 18. 21:59

FTZ level 9
 - Question
 · level9 ID로 Login해서 level10의 password를 찾기


 - Solve

  · 'level9' Directory의 hint 내용을 확인해보면 Hint 두 가지를 찾을 수 있다.
  · 기존에 있는 File은 level 10의 권한으로 생성되어 있어 gdb로 분석할 수 없다.
  · Source Code 설명
  ◦ 크기 10Byte의 변수(buf, buf2) 선언
  ◦ fgets 함수로 buf 변수의 값을 입력받는다.
  ◦ strncmp를 이용해 기존의 buf2에 있는 값과 'go'를 비교해 일치하면 bash Shell을 실행한다.

  · gdb로 분석하기 위해 해당 Program을 분석하기 위해 위 Source Code를 gcc를 이용해 실행 File로 생성한다.
  · 명령어 : gcc -o [생성 File] [Source Code File]

  · 생성한 File을 분석해본다.
  · fgets에서 입력하는 값의 주소 값은 [EBP-40]부터이고 strncmp로 비교하는 주소 값은 [EBP-24]부터이다.
  · 즉, buf2 변수의 주소 값은 [EBP-24]부터 시작되므로 EBP-40부터 16Byte만큼 채우면 buf2의 값을 임의로 입력할 수 있게된다.

 · 따라서 문자 16개를 입력한 후 'go'를 입력하면 bash Shell을 실행할 수 있다.

  · bash Shell을 실행 후 my-pass 명령어를 이용해 Password를 알아낸다.


 - Answer
  · Password interesting to hack!