본문 바로가기
Security/시스템 해킹

[FTZ] 해커스쿨 FTZ Level 2 문제풀이

by kelina 2020. 10. 8.

이번에는 해커스쿨 ftz Level 2이다.

지난번에 알아낸 비밀번호로 로그인을 해보자.

 

아이디 : level2

비밀번호 : hacker or cracker

 

그런 다음 무슨 파일이 있는지 보기 위해 ls, hint 파일을 출력하기 위해 cat hint 를 입력해준다.

마찬가지로 hint 파일을 봐보자.

hint 파일 실행

 

텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다고....?

일단 setuid를 찾기 위해 find / -perm -4000 -user level3 를 입력해보자. (불필요한 출력 없애고 싶으면 2>/dev/null 입력)

깔끔하게 하나가 나온다

editor....? 텍스트 파일 편집기처럼 생긴 파일 이름이다.

이것이 위치한 곳으로 이동하자.

ls -l editor

역시나 level3의 setuid를 가지고 있는 것을 확인할 수 있다.

내 권한으로는 읽고 실행시킬 수 있으니 실행을 시켜본다.

익숙한 vi

익숙한 vi 편집기가 나온다.

보통 이곳에서 코드를 많이 짠다.

아마 이 vi 편집기를 이용하는 동안에는 내 권한이 level2에서 level3로 바뀌었을 것이다.

그럼 이 상태에서 명령어를 발동시켜야 하는데....

편집기에서 어떻게 그러지?

이게 의문(문제)다.

 

일단 vi 편집기의 기능을 잠깐 설명하자면,
i를 입력하면 입력이 가능하다.
그 상태에서 esc를 누르면 맨 밑의 : 여기에 입력을 할 수 있다.
보통 q(나가기), wq(저장하고 나가기), q!(저장 안하고 나가기)와 같은 명령어를 입력한다.

 

그런데 !를 입력하고 명령어를 입력하면 여기서 보통 리눅스 창에서 실행하는 명령을 실행시킬 수 있다!

 

고로 우리가 입력할 명령어는, 쉘을 만들어야 하므로, bash 다. (정확히는 !bash)

 

명령어 입력

그럼 아래와 같이 level3 권한으로 바뀐 것을 확인할 수 있다.

권한 바뀜

my-pass 로 비밀번호를 알아내자.

성공!

레벨 3의 비밀번호는 "can you fly"다.

 

이렇게 레벨 2도 성공!

댓글