FTZ level9
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!