Wargame/FTZ

[FTZ]level3

D4tai1 2019. 9. 3.

아직도 3살..

걸음마 떼기도 힘드네요.

 

20살이 되려면...

 

시작해 볼까요?

 

[그림1] hint 파일확인

 

먼저 C소스에 대한 설명부터 볼까요?

10라인 : 인자를 1개 입력해주어야 합니다.

 

 16라인부터

strcpy, strcat, system을 한 번에 적어보면

system("dig @ 'argv[1]' version.bind chaos txt");

이렇게 되네요?

 

저는 dig를 몰라서 검색해보니

도메인네임서버에 대한 질의응답이 가능한지 

확인하는 명령어라네요.

 

아래 힌트를 볼까요?

 

WoW!!

힌트가 2개나 있네요?

 

1) 리눅스에서 다중명령어를 사용하기 위한 방법은?

1. 세미콜론

ls; pwd;

위와 같이 명령어 2개를 동시에 실행이 가능합니다.

웹에서 보통 command injection할 때

주소창이나 검색창이 1줄밖에 되지 않으므로

여러 명령어를 한 줄에 실행하기 위해서 사용하지요.

 

2. 파이프

ifconfig | grep ttl

이와 같이 ifconfig 명령어로 나온 결과를

grep에 넘겨줄 때 사용합니다.

결과는 ttl이 나온 문장만 출력되겠죠?

 

3. 더블 버티컬바

 

ls || pwd

앞 명령어가 성공적으로 실행되었다면

뒤 명령어는 실행되지 않습니다.

 

위의 경우 ls만 실행되겠죠?

 

4. 더블 엠퍼센트

ls && pwd

앞 명령어가 실행에 실패했다면

뒤 명령어가 실행되지 않습니다.

 

위의 경우 둘다 실행되겠죠?

 

그리고 

2) 문자열을 여러 개 전달하려면?

▶ 큰따옴표("")로 감싸면 되죠?

 

힌트대로만 하면 그냥 될 것 같네요.

 

[그림2] /bin/autodig를 이용한 shell 얻기

결과적으로

system("dig @ ; /bin/sh; version.bind chaos txt");

이렇게 들어갔을테니

dig @ 명령어는 에러가 날테고,

/bin/sh는 실행이 되었고,

 

level4로 갈 준비를 하겠습니다.

 

[그림3] id 확인

 

[그림4] my-pass 

Level4 Password is "suck my brain".

 

'Wargame > FTZ' 카테고리의 다른 글

[FTZ]level6  (0) 2019.09.05
[FTZ]level5  (0) 2019.09.05
[FTZ]level4  (0) 2019.09.04
[FTZ]level2  (0) 2019.09.03
[FTZ] level1  (0) 2019.09.03

댓글