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]의 인자로) 중요한건 이게 문자로 인식해야하니까 " " 안에 넣어줘야 한다는 것. 이걸 안해서 조금 헤맸다.
'CTF, 워게임 문제 풀이 > Hackerschool FTZ' 카테고리의 다른 글
Hackerschool FTZ: Level 5 문제 풀이 (0) | 2023.02.10 |
---|---|
Hackerschool FTZ: Level 4 문제 풀이 (0) | 2023.01.30 |
Hackerschool FTZ: Level 2 문제 풀이 (0) | 2023.01.07 |
Hackerschool FTZ: Level 1 문제 풀이 (0) | 2022.12.31 |
Hackerschool FTZ: 트레이닝 1-10 풀이 (0) | 2022.12.31 |
댓글