해킹 공부/시스템 해킹

FTZ 해커스쿨 level3 - 다중명령어

O'bin 2021. 10. 2. 16:11

id :  level3

pw :  can you fly?

 

 

 

<나의 풀이 기록> 

1. ls로 파일 목록을 보니 역시 힌트 파일 발견

2. cat hint로 내용을 확인하니 프로그램 autodig의 소스가 나온다.

 

 

c언어인데... 

argc가 2가 아니면 버전정보와 어떤 것을 출력하고 종료되는 프로그램이다.

이것을 통해 argc가 2가 되면 뭔가 다른 결과(힌트?)가 나올 것을 예상할 수 있다.

 

 

힌트파일 마지막 내용은 동시에 여러 명령어 사용과 문자열 형태로 명령어를 전달하는것에 대해 나와있다.

우선 동시에 여러 명령어를 사용하는 것은 '다중명령어'이다.

다중명령어 : 하나의 라인에서 여러 명령어 실행 가능

                 ;는 모든 명령어 실행, &&는 앞에서 실패 발생 시 뒤 명령 실행하지 않음

다음으로 문자열 형태로 명령어를 전달하려면 따옴표 안에 명령어를 넣으면 된다.

 

 

혹시나 해서 level4의 권한으로 setuid가 걸린 파일을 찾아보니 /bin/autodig가 발견된다.

이 파일을 실행해 보니 argc가 2가 아닌 경우처럼 버전정보와 usage가 나오고 정상 종료된다.

 

3. 그럼 argc를 2로 만들어 주기 위해서 아래와 같이 명령어를 입력해주기로 한다. 

 

 

세미콜론(;)을 이용해서 여러 명령어를 동시에 사용하고, 따옴표를 통해 문자열 형태로 명령어를 전달했다.(실험 결과 큰따옴표와 작은 따옴표 둘 다 같은 결과가 나왔다.)

오류메세지가 나오면서 level4의 비밀번호를 얻는데 성공했다. 

 

 

앞 명령어를 test 대신 숫자를 넣었더니 조금 다른 오류가 출력되는 것을 볼 수 있다. 그러나 비밀번호를 얻게 되는것은 똑같다. 

 

 

 

<풀이 요약>

1. ls로 hint 파일 찾기

2. cat hint로 힌트 파일 내용 확인

3. 다중명령어와 따옴표 이용해 autodig프로그램 실행

4. 끝

 

 

 

 

 

autodig의 코드내용을 어영부영 읽어내긴 했지만 자세히 분석하는 것까지는 하지 못했다. c언어 내용을 정확히 공부하고 다시 자세히 해석해봐야겠다. 레벨이 올라갈수록 체감 난이도가 확 증가함을 느끼고 있다. 분발하자...!