본문 바로가기
CTF, 워게임 문제 풀이/Hackerschool FTZ

Hackerschool FTZ: Level 3 문제 풀이

by secumark 2023. 1. 15.
728x90

 

 

 

level3에 접속했다. ls 명령어 입력 후 hint 파일 발견

 

 

 

 

C언어인거 같다.. 

more hints를 보면 동시에 여러 명령어를 사용하는법, 그리고 문자열 형태로 명령어를 전달하는 법에 대해도 알아야 한다고 나와있다. 

 

 

아직은 무슨말인지 잘 모르겠어서 autodig 파일이 어딨는지 찾아봤다. 

 

이것도 Setuid가 걸려있다.

 

 Auto Digger Version 0.9

Usage : /bin/autodig host

이렇게 뜨는게 아까 argc가 2가 아닐 때를 의미하는데, argc는 명령행 옵션의 개수가 저장되는 것이고, argv는 그 명령 옵션들이 저장되는 곳이다.  그니까 명령행 옵션이 2개이면..? 문제가 풀리는거 같다. ...

 

참고로 strcpy()는 스트링 복사, string2를 string1로 복사하는 것으로, 여기선 dig @를 cmd로 복사한다.

strcat은 스트링 연결. argv[1}를 cmd에 연결한다는 뜻. 그러면 이걸 다 합치면.. dig @ argv[1] 우리가 입력한 값.. version.bind chaos txt...이라는 말이다.

 

근데 문자열 형태로 명령어를 전달하라는게 무슨 뜻인지 잘 몰라서 검색해봤는데 그냥 "", '' 이걸 말하는거였음.

 

명령어 여러개 쓰는건.. ; 세미콜론이고..

 

그니까 우리가 /bin/autodig이라고 적고, 뒤에 ; (세미콜론)을 붙인 뒤에, 그 뒤에 명령어를 뭘 적어주면 되냐면, 이걸 실행할 때는 level4의 권한을 가지게 되니까! 이때 my-pass를 확인하면 된다는 뜻이다! (argv[1]의 인자로) 중요한건 이게 문자로 인식해야하니까 " " 안에 넣어줘야 한다는 것. 이걸 안해서 조금 헤맸다.

 

 

 

 

728x90

댓글