안녕하세요.
FTZ Level_3 문제를 풀어보겠습니다.
우선 ls -l 명령어를 입력하여 파일을 확인합니다.
결과 목록 중에서 hint 파일의 내용을 확인해보겠습니다.
cat 명령어
파일의 내용을 확인할 수 있는 명령어입니다. ex) cat 파일명
cat hint 명령어를 입력합니다.
힌트의 내용이 출력됩니다.
이번에는 소스 코드가 출력 되었습니다.
소스코드를 살펴보자면
argc는 프로그램을 실행할 때 넘겨주는 인자의 개수 입니다.
Ex) ls -s/ 를 실행할 경우
argc[0] = ls , argc[1] = -s , argc[2] = /
이렇게 총 3개의 인자 값을 가지게 됩니다.
이어서 if 문을 살펴보면 argc가 2가 아니면 if문을 실행합니다.
그리고 printf함수로 내용들을 출력한 후 exit(0)로 프로그램을 종료합니다.
그렇다면 인자 값을 2개 부여해서 프로그램 종료를 막으면 됩니다.
strcpy() 함수는 "dig @" 문자열을 cmd에 복사하는 함수입니다.
strcat() 함수는 argv[1]을 cmd 뒤에 붙이는 기능입니다.
최종적으로 cmd 내용에는
"dig @argv[1] version.bind chaos txt" 내용이 들어가게 됩니다.
추가 힌트를 살펴보면
1. 동시에 여러 명령어를 사용하려면 ?
2. 문자열 형태로 명령어를 전달하려면 ?
이였습니다.
1. 동시에 여러 명령어를 사용하려면 ? 에 대한 답은
- 명령어 사이에 ; (세미콜론) 을 넣어줍니다.
- $ sh; ls 라는 명령어를 입력하면 sh 실행이 종료된 후 ls 명령어를 실행하는 뜻입니다.
2. 문자열 형태로 명령어를 전달하려면 ? 에 대한 답은
- 명령어를 큰 따옴표(" ")로 묶어주면 됩니다.
autodig 파일을 찾기 위해 find 명령어를 사용합니다.
find / -user level4 2>/dev/null
결과 : /bin/autodig
bin 폴더에 있는 것을 확인하였으니 cd bin 명령어를 이용하여 bin 폴더로 이동합니다,
그리고 파일을 실행하는데 저희는 다음 단계의 비밀번호를 원하므로 my-pass도 같이 입력하여 줍니다.
./autodig ";my-pass"
argc[0] = autodig , argc[1] = my-pass
Level4의 비밀번호가 나타났습니다.
suck my brain
Level_3 을 클리어 하였습니다.
'FTZ_해커스쿨' 카테고리의 다른 글
[FTZ] Level_5 (0) | 2019.09.20 |
---|---|
[FTZ] Level_4 (0) | 2018.10.18 |
[FTZ] Level_2 (0) | 2018.10.14 |
[FTZ] Level_1 (0) | 2018.10.11 |
[FTZ] 로컬 환경 구축 (2) | 2018.10.11 |