본문 바로가기
hackerschool bof/hackerschool ftz

해커스쿨(HackerSchool) Level3 풀이내용!

by 깝태 2010. 8. 21.

해커스쿨(HackerSchool) Level3 문제입니다. 이번문제의 힌트에는 C 언어 소스가 첨부되어있지만, 몰라도 약간의 힌트만 아시면 누구든지 쉽게 문제를 풀어나갈 수 있습니다. 물론 저도 깊숙히 아는 문제는 아니라 깊숙히! 소스를 따지진않을꺼구요, 다른 힌트를 중점적으로 다뤄보겠습니다




우선 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언어 소스는 내버려두고, More Hint 를 보겠습니다. 동시에 여러 명령어를 사용하려면? - 문자열 형태로 명령어를 전달하려면?
우선 동시에 여러 명령어를 전달하는 방법은 ;, &, | 를 사용하시면 됩니다. 여기서 세미콜론이 제일 많이 쓰여서 저도 세미콜론을 쓸께요.
문자열 형태로 명령어를 전달하려면 " " 큰따옴표 사이에 써넣으시면 문자열형태로 전달됩니다.

우선 SetUID가 걸려있는 파일을 찾아봅시다. 'Find / -user level4 -perm -4000' 를 입력하시면 /bin/autodig 가 안 걸려있다는걸
아실 수 있습니다. 그러면 /bin/autodig 를 입력하시면 아래와같은 메세지가 뜹니다. 우리는 /bin/autodig 를 입력하면서 More Hint
를 응용하시면 됩니다.


/bin/autolog "문자;my-pass" 라고 입력하시면 비밀번호가 뜹니다. 뒤에 " 로 문자열을 지정해주고, ; 로 두개를 붙여줍니다.
이렇게 해주시면 Level3 도 완료입니다! 설명이 살짝 부족했는데, 보시다시피 C 언어가 약해서 그런것 같습니다. 지금 함수를 공부하고
있는데 모르겠는 분들이 있으면 직접 따로 검색을 해보시고바라고, 제가 보충할 수 있으면 나중에 직접 보충하겠습니다.