FTZ_해커스쿨

[FTZ] Level_3

YaluStar 2018. 10. 15. 10:43

안녕하세요.

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