level2로 접속 후 hint 파일을 확인해보면 다음과 같이 편집 중에 쉘 명령을 실행시킬 수 있다고 한다.
다음과 같은 명령어를 통해 우선 level3 권한이 있는 setuid가 설정된 파일을 찾았다.
일단 파일을 실행해보면 vi 편집기같은 편집화면이 나오는 것을 확인할 수 있었다.
일단 좀 더 자세한 분석을 위해 gdb로 분석을 해봤다.
로직은 간단하다.
setreuid 함수로 level3 권한인 3003(0xbbb)로 권한 변경 후 system함수를 통해 특정 명령어를 실행한다.
이 때 실행되는 명령어를 파악하기 위해 인자값으로 들어온 8048444 메모리 주소의 값을 보면 위와 같이 /bin/vi라는 문자열이 입력되어 system함수를 통해 실행된 것을 확인할 수 있다.
즉 /usr/bin/editor 바이너리는 level3 권한으로 vi에디터를 실행시켜주는 로직을 가진 파일이었던 것을 알 수 있었다.
그렇다면 해당 바이너리 실행 시 실행된 vi에디터는 level3 권한을 가지고있기 때문에 다음과 같이 vi에디터의 명령어 실행 기능을 통해 level3권한으로 패스워드를 구할 수 있다.
잘 나온당.
'Wargame > FTZ' 카테고리의 다른 글
FTZ level6 (0) | 2018.01.05 |
---|---|
FTZ level5 (0) | 2018.01.05 |
FTZ level4 (0) | 2018.01.04 |
FTZ level3 (0) | 2018.01.04 |
FTZ level1 (0) | 2018.01.03 |