Wargame Site/FTZ
-
FTZ ( Level 9 )Wargame Site/FTZ 2019. 3. 24. 17:40
LEVEL NinE ~~ BOF 문제이다. 그러기 위해서 gdb 를 사용하려고 했으나, 권한이 안되서 코드를 그대로 복사한 뒤에 분석해봐야겠다는 생각이 들었다. 'gdb a' 를 한뒤에 친숙한 intel 기반으로 세팅한 뒤, main 함수에 접근했다. 'ebb - 40' 에서 입력받기 시작해서 'ebp -24' 에 있는 값으로 부터 2개의 값을 읽는 다는 것을 알 수 있다. 따라서, 16 글자 뒤 2문자가 "go" 이면 된다는 뜻이다. 쉘을 얻었으니 My-pass 를 통해 패스워드를 알아냈다.
-
FTZ ( Level 8 )Wargame Site/FTZ 2019. 3. 23. 23:16
Level 8 ~ 용량이 2700 이라는 것을 단서로 find 명령어를 수행한다.2700 이라는 단서로 2700c, 2700M 등의 후보들을 준비해뒀다. 그 결과, 다음과 같은 결과가 나왔고, 그 중에 found.txt 가 수상해 보이기에 cat 을 해보았다. /etc/shadow 의 한 줄을 긁어 온 듯한 형식이었다. 그렇다면 password 관련 필드는 두 번째 field 이었고, '$1$' 을 통해 md5 형식으로 되어있음을 알 수 있었다. 이를 해결하기 위해 구글링을 해본 결과 'John the Ripper' 라는 도구를 사용하면 된다고해서, macOS 용을 설치한 뒤, 문제를 해결했다.
-
FTZ ( Level 7 )Wargame Site/FTZ 2019. 3. 23. 22:01
문제의 7번 문제이다.... 실행 결과 wrong.txt 을 찾을 수 없다는 문구가 나온다. 그래서 wrong.txt 를 만들어 주어야하나 해서 'ls -ld /bin', 'find / -user root -perm +4000 2> /dev/null' 과 같은 시도들을 반복해봤지만 부질없었다. 답답한 마음에 구글링을 해본 결과, wrong.txt 의 내용이 없는건 오류라고 하더라..... 결국 이러한 사실을 알게되었고, 2진수가 언급되었다 는 것을 토대로 다음과 코드(?)를 작성했다. Clear!! 이 문제에 쏟은시간이 아까웠다....
-
FTZ ( Level 5 )Wargame Site/FTZ 2019. 3. 23. 14:49
이제는 'cat hint' 까지의 설명은 필요 없을 것이라고 생각한다. level5 실행 시 권한은 level6 으로 작동한다. 그리고 /tmp 의 other 에 t 가 있는 것을 알 수 있다. t 권한은 글을 게시한 user 만이 해당글을 삭제할 수 있는 권한이다. 즉, 수정이 가능하다는 것이다. level6 가 level5 를 실행시킬 때 생기는 level5.tmp 는 level6 가 생성한 파일이므로 파일은 임시적으로 사용되고, 버려진다. 하지만, level6 가 아닌 다른 누군가가 level5.tmp 라는 파일을 미리 만들어 놓았다면, 해당 파일은 수정이 가능하지만, 삭제할 수 없다는 특징을 지닌다. 이를 이용하여 해결~
-
FTZ ( Level 4 )Wargame Site/FTZ 2019. 3. 23. 14:36
Level 4 ~ 늘 그랬듯이 먼저 파일을 확인한다. hint 의 내용을 확인한다. /etc/xinetd.d 는 데몬과 관련된 디렉터리이다. 서비스의 이름은 finger 이고, user 는 level5 이며, /home/level4/tmp/backdoor 를 실행하는 것을 알 수 있다. 하지만, level4 의 tmp 에는 'backdoor'파일이 없었다. 하지만, level4 의 tmp 에는 'backdoor'파일이 없었다. 그래서 만들어주었다. my-pass 의 결과를 /tmp/pw.txt 에 저장하는 코드이다. gcc 를 사용해 컴파일 해준다! 그 뒤 service 요청을 해주면!! /tmp/pw.txt 가 생기고 확인하면 level5 의 password 가 출력된다.