Wargame 🎮/🎡 FTZ

반응형
Wargame 🎮/🎡 FTZ

[FTZ] level12

[FTZ] level12 level12를 엽니다. 이문제도 level11처럼 bof를 이용할 수 있는 문제이다. str 변수에 대해서 gets함수에서 길이 제한 없이 받기 때문이다. str의 길이는 256bytes이지만, gdb로 분석해 보면 264bytes까지 할당되는 것을 통해서 8bytes의 dummy 부분이 있는 것을 알 수 있다. gets으로 변수를 입력받을 때, RET까지 덮어쓰면 가능 할거 같다. level11과 level12의 차이점이라면, level11은 main함수의 인자값으로 받기 때문에 ./attack 인자값으로 바로 전달이 된다면, level12는 main함수가 실행되고 나서 입력값을 넣기 때문에 | (파이프라인)을 이용해야 한다. level11의 환경변수를 이용해서 푼 것과 같은..

Wargame 🎮/🎡 FTZ

[FTZ] level11

[FTZ] level11 level11 로 로그인을 하고 파일을 확인해 보면, hint 파일과 attackme 라는 파일이 있다. hint 안에는 코드는 attackme의 코드에 해당되는 거 같다. 이번 문제도 저번 level9와 같이 bof를 이용해야 하는 문제이다. #include #include int main( int argc, char *argv[] ) { char str[256]; setreuid( 3092, 3092 ); strcpy( str, argv[1] ); printf( str ); } 코드를 확인하게 되면, main 함수에서 인자값을 받는다. ▶ [참고] 2023.01.31 - [시스템/시스템 해킹] - main 함수 인자 그리고, strcpy라는 취약한 함수가 있는데 특별히 길이 ..

Wargame 🎮/🎡 FTZ

[FTZ] level10

[FTZ] level10 level10 로 로그인한 후에 문제를 보면 공유 메모리를 알고 있어야 한다. [공유메모리(Shared Memory)] 컴퓨터 환경에서 여러 프로그램이 동시에 접근할 수 있는 메모리. IPC(Inter-Process Communication)의 일종. - 데이터 공유 방식 1) 커널이 생성된 공유 메모리를 통해서 프로세스간 데이터 공유 2) 공유된 메모리 영역을 통해서 통신 3) 단순히 공유 메모리를 point 함으로써 프로세스에서 사용되는 메모리가 증가되지 않는다. - Share memory를 사용하기 위해 필용한 헤더 및 함수 #include #include int shmget(key_t key, int size, int shmflg) // shared memory 생성 또는..

Wargame 🎮/🎡 FTZ

[FTZ] level9

[FTZ] level9 level9으로 접속해서 hint를 읽었더니 /usr/bin/bof 소스가 나왔다. 파일 제목부터 bof 로 buffer overflow를 이용해야 하는 문제이다. #include #include #include main(){ char buf2[10]; char buf[10]; printf("It can be overflow : "); fgets(buf,40,stdin); if ( strncmp(buf2, "go", 2) == 0 ) { printf("Good Skill!\n"); setreuid( 3010, 3010 ); system("/bin/bash"); } } fgets을 통해사 입력값을 받아 buf에 저장하고 strncmp 함수로 buf2 가 "go"일때 문제가 해결됨. ..

Wargame 🎮/🎡 FTZ

[FTZ] level8

[FTZ] level8 level8로 로그인을 해서 문제를 확인해 보았다. find명령어를 이용해서 파일 용량이 2700인 파일을 찾아보면 될 것 같다. find / -size 2700 2>/dev/null 하지만 위의 명령어로 파일을 찾아도 나오지 않았다. 그래서 find에서 찾을 수 있는 파일 크기를 찾아 보았더니 사이즈 단위로 다양했다. b : 블록단위 c : 바이트(byte) k : 키로 바이트 w : 워드 (2byte) m : 메가 바이트 g : 기가 바이트 모든 단위로 검색을 하니까, 읽을 수 있는 파일이 found.txt 밖에 나오지 않아 읽어보았다. 사용자의 패스워드 정책이 들어 있는 /etc/shadow 의 형식과 동일한 결과가 나왔다. level9:$1$vkY6sSlG$6RyUXtNME..

Wargame 🎮/🎡 FTZ

[FTZ] level7

[FTZ] level7 level7로 로그인을 했다. 그래서 /bin/level7을 실행시켜 보았는데 진짜 Insert The Password : 창이 뜨는데 입력값을 넣고 엔터를 누르면 cat /bin/wrong.txt : No such file or directory 라는 에러메시지가 뜬다 level7 파일이 실행될 때, cat /bin/wrong.txt가 실행되는 거 같은데 해당 위치에 파일이 없어서 오류가 난다. [참고] 여기서 어떻게 문제를 풀어야 하나 했는데 구글링 해보니까 로컬 구축한 서버들 중에 /bin 폴더 안에 wrong.txt 파일이 없는 경우가 있다고 한다. 그러면 처음에 서버 구축을 위해서 사용했던 root 계정으로 로그인한 후에 wrong.txt 파일을 아래 내용처럼 넣어서 만들..

Wargame 🎮/🎡 FTZ

[FTZ] level6

[FTZ] level6 이번에 level6이다. hint - 인포샵 bbs의 텔넷 접속 메뉴에서 많이 사용되던 해킹 방법이다. 엔터를 누르면 아래와 같이 텔넷 접속 서비스가 나온다. 번호를 선택하면 Trying... 하면서 접속을 시도하는데 반응이 없다 다시로그인 시도... 여기서 어떻게 진행되야 하는지 몰랐는데 그냥 hint 화면에서 'Ctrl + C' 버튼을 누르면 쉘로 넘어간다. 아직 문제의 의도를 정확하게 모르겠당 ㅠㅠ 이후 ls 명령어를 치면 password 파일이 있어서 안의 내용을 확인하면 비밀번호가 있다. 간단히 풀기는 했는데 추후에 문제의 의도를 정확하게 알게 되면 추가해야겠다.

Wargame 🎮/🎡 FTZ

[FTZ] level5

[FTZ] level5 level5 로그인해서 문제를 확인해 본다. level5라는 파일에는 SetUID가 설정되어 있다. 파일을 실행하면, SetUID가 설정되어있는 임시파일이 생성되었다가 삭제되는것 같다. 여기서 Race Condition 공격을 이용하는 문제인걸 생각할 수 있었다. 2022.07.05 - [시스템/시스템 해킹] - [시스템 해킹] 레이스 컨디션(Race Condition) level5.tmp 파일에 심볼릭 링크를 설정해 놓으면, 파일이 실행되면서 임시파일이 삭제되도 해당 권한의 파일을 읽을 수 있도록 한다. ln -s 원본파일명 링크파일명 이니까 /tmp 파일에 가서 hi라는 파일 만들고 level5.tmp로 심볼릭 링크를 만든다. $ cd /tmp $ touch hi $ ln -s..

반응형
제나나
'Wargame 🎮/🎡 FTZ' 카테고리의 글 목록 (2 Page)