[FTZ]level3
아직도 3살..
걸음마 떼기도 힘드네요.
20살이 되려면...
시작해 볼까요?
먼저 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) 문자열을 여러 개 전달하려면?
▶ 큰따옴표("")로 감싸면 되죠?
힌트대로만 하면 그냥 될 것 같네요.
결과적으로
system("dig @ ; /bin/sh; version.bind chaos txt");
이렇게 들어갔을테니
dig @ 명령어는 에러가 날테고,
/bin/sh는 실행이 되었고,
level4로 갈 준비를 하겠습니다.
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 |
댓글