Pwnable

Pwnable/FTZ

FTZ - level11 [Buffer Overflow 𝛼]

LEVEL 11 [level11] passcode : what!@#$? (NO DRAG, NO PASSCODE) attackme 라는 실행파일이 존재하나 level11의 권한에서는 실행과 읽기권한만 존재한다. 이제 hint를 살펴보자. 아마도 level11의 소스코드인 것 같다. 코드를 한번 분석해 보자. #include #include int main( int argc, char *argv[] ) { char str[256]; //256바이트의 배열 선언 setreuid( 3092, 3092 ); //level12 권한 부여 strcpy( str, argv[1] ); //str에 argv[1]를 복사 printf( str ); //문자열 str을 출력 } 여기서 str의 길이를 검사하는 코드가 존재하지..

Pwnable/FTZ

FTZ - level10 [Wiretapping]

LEVEL 10 [level10] passcode : interesting to hack! interesting to hack! (NO DRAG, NO PASSCODE) 이전까지의 레벨과는 다르게 program이란 디렉토리가 추가되었다. 그러나 program이라는 디렉토리는 접근 권한이 없다. hint를 살펴보았더니 공유 메모리를 사용하는 두 사람의 대화를 도청하여 level11의 권한을 얻는 문제이다. 공유 메모리에 대하여 알아야 할 것 같다. [ 공유 메모리 ] 원래는 프로세서가 사용하는 메모리 공간은 하나의 프로세스만이 사용할 수 있다. 다른 프로세스의 접근을 원하는 경우 최초의 공유 메모리 생성 프로세스가 커널에 공유 메모리 공간의 할당을 요청함으로써 이루어진다. 시스템 재부팅 및 공유 메모리 공..

Pwnable/FTZ

FTZ - level9 [Buffer Overflow]

LEVEL 9 [level9] passcode : break (NO DRAG, NO PASSCODE) hint를 살펴보니 버퍼 오버플로우에 관한 문제인 것 같다. 바로 코드를 살펴보자. #include #include #include main(){ char buf2[10]; //10바이트 크기의 buf2 선언 char buf[10]; //10바이트 크기의 buf 선언 printf("It can be overflow : "); fgets(buf,40,stdin); //buf라는 변수에 40개(NULL포함) 입력받음 if ( strncmp(buf2, "go", 2) == 0 ) //buf2의 처음 2개의 문자가 "go"와 일치한다면 { printf("Good Skill!\n"); setreuid( 3010,..

Pwnable/FTZ

FTZ - level8 [John The Ripper]

LEVEL 8 [level8] passcode : break the world (NO DRAG, NO PASSCODE) hint 를 살펴보자. level9의 shadow 파일이 어딘가에 숨어있다고 한다. 또한 용량이 2700 이라고 한다. find 명령어로 용량을 기준으로 검색할 수 있다. find ./* -size +N : N 이상 크기의 파일을 검색 find ./* -size -N : N 이하 크기의 파일을 검색 find ./* -size N : N 크기의 파일을 검색 b : 블록단위 c : byte k : kbyte w : 2byte 워드 /etc/rc.d/found.txt 라는 파일이 눈에 띈다. 한번 확인해보자. 다음과 같은 문장이 반복하여 출력된다. level9:$1$vkY6sSlG$6RyUX..

Lucvs
'Pwnable' 카테고리의 글 목록 (13 Page)