# Related site issues/FTZ

Level12 풀이. pw = 'it is like this' 일단 문제 접근을 위해 hint를 본다. /home/level12라는 폴더에 attackme라는 파일이 존재하고, SETUID가 걸려 있다.gets 함수를 이용해서 버퍼 경계를 확인하지 않고, 사용하기 때문에 BOF 발생.gets랑 strcpy랑 느낌이 비슷. gets 함수가 나왔으니 분석해보겠다.1번째 char[256]; = 256의 크기를 가지는 배열을 str이라는 이름을 붙여 선언.2번째 setreuid(3093,3093); 흠... 3093을 사용해서 다음 level의 hint를 찾는 거 같다.3번째 printf는 생략.4번째 gets(str); = 키보드로 입력하는 것을 str에 저장.5번째 printf( ~, str) = 출력. g..
Level11 풀이. pw = 'what!@#$?' 일단 문제 접근을 위해 hint를 본다. 그 전에 어떤 파일이 있는지 확인. attackme 라는 파일이 있는데 이게 hint 일 거 같다. 일단 이전 문제에서 등장했던 C코드가 등장했다. 이전 문제에서 세세히 분석했으니 간단하게만 파악했다.strcpy에 취약점이 존재하고, str 크기는 256byte를 할당. attackme라는 파일이 있으니, 한 번 실행. 뭘 쓰든 이렇게 입력 값이 그대로 나와서 실행ed. 읽기 권한도 있고, SETUID 권한도 존재. gdb 내부를 들여다 보았다. 0x108을 10진수로 변환시키면 264라는 숫자가 나오는데, 264라는 숫자 속에는 str의 256byte와 dummy 8byte가 저장되어 있다. 메모리 구조 = B..
Level10 풀이. pw = 'interesting to hack!' 일단 hint를 통해 문제를 접근한다.hint에서 지시한 것처럼 level11 권한 있는 파일이 있는지 확인. find에 대한 설명은 이전 문제에서도 많이 했기 때문에 생략. 단서가 될 만한게 없으니, 시스템이 시작될 때, 프로그램을 자동으로 시작되도록 하는 설정에 해당 파일이 있을 수도 있으니, rc.local 파일을 확인해본다. /etc/rc.d/rc.local 명령. rc.local 파일에서 실행 파일의 이름과 경로를 알았으니, level10이라는 이름으로 실행 중인 프로세스가 있는지를 확인. 프로세스는 없다. 즉 단순 프로세스 형태. 그럼 조건은 공유 메모리를 사용하고 있고, key_t라는 변수와 값으로 7530을 사용해야 한..
Level9 풀이. pw = "apple" 일단 hint를 통해 문제를 접근. 일단 main 아래부터 한 줄씩 해석.1번째 char ~~~는 char형 변수 buf2 이름에 10byte 크기 배열 선언.2번째 char ~~~는 char형 변수 buf 이름에 10byte 크기 배열 선언.3번째 printf ~~~는 it can be overflow 라는 문구 출력.4번재 fgets ~~~는 fget([char *str],[int size],[FILE * Stream] 형식. 즉 40이하의 byte 입력받아서 buf 변수에 집어 넣는다.5번째 if ~~~는 strncmp([char * str], [char *str2], [byte])는 buf2의 2byte와 go를 비교한 뒤 같으면, 출력 아니면, 출력 X..
level 8 풀이. pw = "break the world" 일단 hint를 통해 문제를 접근한다. shadow 파일이 있고, 그 파일의 용량이 2700이라는 것을 확인. 한 번 찾아봤다. 앞의 level1 문제에서 자세히 설명했던 find 명령어를 사용해 파일 Size 검색. 간단히 다시 설명하자면, find[찾고자 하는 디렉터리] -size [찾을 용량] [단위]ex) find / -size 2700c 2>/dev/null cf) 단위 b 512byte c byte k kbyte w 2byte 그리고 나서 여러 파일들 중에 가장 익숙한 파일인 found.txt가 보인다.cd 명령어로 이동한 후, cat 사용. found.txt 열어 보니 이런 식으로 구성. level9:$1$vkY6sSlG$6RyU..
Level7 풀이. pw = "come together" 일단 hint를 통해 문제를 접근한다. 음...................1. 무슨 소리인지 모르겠다.2. ??????????????????3. 2진수 => 10진수 4. 뭔가 아스키 코드를 쓸 거 같다. 일단 level7 파일로 접근. password를 치라고 해서 아무거나 치면 위의 사진처럼 뜬다.보니까 space도 있고, -, _, 존재한다. 무엇을 말하는 것일까.....흠................오래 생각해봤다............... hint 4에서 나타났듯이 아스키를 쓴다고 했으니,-는 1, _은 0이라고 생각해봤다.이걸 2진수로 나누어 보면 1101101(109), 1100001(97), 1110100(116),1100101(1..
Level6 풀이. pw = "what the hell" 일단 hint를 통해 문제를 파악한다. 처음에 접속하면 뜨는 화면인데, 좀 당황스러웠다. 아무거나 눌러보니 이 상태에서 연결이 끊긴다. 그래서 다시 접속하고 파일 목록을 파악하기 위해 ls-al 명령. 위의 화면처럼 파일 목록에 password가 존재해서 cat password를 명령하니 다음 단계 비밀번호가 나오면서 문제 풀이가 끝난다. cf) ???????.... 이런 느낌..
Level 5 풀이. pw = ''what is your name?" 일단 문제를 풀기 위해 hint를 본다. 간단히 요약.1. /usr/bin/level5라는 program이 존재.2. level5를 실행하려면 /tmp 디렉터리 level5.tmp에 임시 파일 생성. 그럼 일단 /level5로 이동. tmp 폴더를 보니까 level5라는 파일이 없다. 아마 임시 파일이라 그런 듯 하다.일단 /tmp 부분에 level5.tmp 파일 생성 후 level5를 실행시키면 tmp에 생길 것 같다.한 번 시도 해보겠다. cat > 명령어로 level5.tmp 파일을 생성.ls -al 명령어로 /tmp 디렉터리 파일 내용을 보면 level5.tmp가 존재. 보다시피 level5.tmp를 보면 임시 파일이 존재. 사..
Allblackk
'# Related site issues/FTZ' 카테고리의 글 목록 (2 Page)