Wargame 🎮/🏹 LOB(Lord Of Bof)

반응형
Wargame 🎮/🏹 LOB(Lord Of Bof)

[LOB] orc

[LOB] orc orc로 로그인하고 문제를 확인하면 #include #include extern char **environ; main(int argc, char *argv[]) { char buffer[40]; int i; if(argc < 2){ printf("argv error\n"); exit(0); } // egghunter for(i=0; environ[i]; i++) memset(environ[i], 0, strlen(environ[i])); if(argv[1][47] != '\xbf') { printf("stack is still your friend.\n"); exit(0); } strcpy(buffer, argv[1]); printf("%s\n", buffer); // buffer hu..

Wargame 🎮/🏹 LOB(Lord Of Bof)

[LOB] goblin

[LOB] goblin goblin으로 로그인한 후 파일을 확인하면, orc, orc.c 파일이 있다. #include #include extern char **environ; main(int argc, char *argv[]) { char buffer[40]; int i; if(argc < 2){ printf("argv error\n"); exit(0); } // egghunter for(i=0; environ[i]; i++) memset(environ[i], 0, strlen(environ[i])); if(argv[1][47] != '\xbf') { printf("stack is still your friend.\n"); exit(0); } strcpy(buffer, argv[1]); printf("..

Wargame 🎮/🏹 LOB(Lord Of Bof)

[LOB] cobolt

[LOB] cobolt cobolt로 로그인한 후에 문제를 확인하면 다음과 같다. 전의 문제와 다른점은 입력을 main함수 인자로 받은게 아니라 gets함수로 입력하는 것이다. int main() { char buffer[16]; gets(buffer); printf("%s\n", buffer); } 코드를 확인하면. buffer의 크기는 16bytes이지만, gets(buffer);을 보면 길이에 제한이 없기 때문에 이곳에서 bof가 일어난다. gdb로 goblin 파일을 확인해 보면 sub $0x10, %esp을 통해서 변수로 0x10이 할당된다는 것을 알 수 있다. (16진수) 0x10 → (10진수) 16 변수의 크기도 16bytes이기 때문에 buffer와 sfp 사이에는 dummy 값이 없다는..

Wargame 🎮/🏹 LOB(Lord Of Bof)

[LOB] gremlin

[LOB] gremlin gremlin으로 로그인한 후 파일을 확인하면 cobolt와 cobolt.c 파일이 있다는 것을 알 수 있다. cobolt.c 파일을 확인하면, 전 문제(gate)와 비슷하다. int main(int argc, char *argv[]) { char buffer[16]; if(argc < 2){ printf("argv error\n"); exit(0); } strcpy(buffer, argv[1]); printf("%s\n", buffer); } 1. 코드를 확인해 보면, argc < 2 부분을 통해서 인자가 하나라도 주어져야 하고 2. strcpy(buffer, argv[1]); 을 통해서 인자값을 buffer로 입력받는데 입력값에 대한 길이 제한이 없다. ☞ 여기서 bof가 일..

Wargame 🎮/🏹 LOB(Lord Of Bof)

[LOB] gate

[LOB] gate gate / gate로 로그인을 하고 gremlin.c 파일을 확인해 본다. int main(int argc, char *argv[]) { char buffer[256]; if(argc < 2){ printf("argv error\n"); exit(0); } strcpy(buffer, argv[1]); printf("%s\n", buffer); } 1. 코드를 확인해 보면, argc < 2 부분을 통해서 인자가 하나라도 주어져야 하고 *인자에 대한 자세한 설명은 전에 작성했던 글 참고 : 2023.01.31 - [시스템/시스템 해킹] - main 함수 인자 2. strcpy(buffer, argv[1]); 을 통해서 인자값을 buffer로 입력받는데 입력값에 대한 길이 제한이 없다. ..

Wargame 🎮/🏹 LOB(Lord Of Bof)

[LOB] 시작 (로컬 서버 구축하기)

[LOB] 시작 (로컬 서버 구축하기) LOB는 해커스쿨에서 만든 시스템으로 The Lord of The Bufferoverlow의 약자이다. FTZ보다 더 어려운 문제들로 level20까지 구성되어 있다. 링크 주소 : https://www.hackerschool.org/HS_Boards/zboard.php?id=HS_Notice&no=1170881885 https://www.hackerschool.org/HS_Boards/zboard.php?id=HS_Notice&no=1170881885 [BOF-BufferOverflow- 원정대란?] 비교적 쉬운 BOF 공략 환경인 Redhat 6.2에서부터 궁극의 Fedora 14까지 수십개의 레벨을 거쳐가며 BOF 시스템 해킹 실습을 하는 War-Game입니다..

반응형
제나나
'Wargame 🎮/🏹 LOB(Lord Of Bof)' 카테고리의 글 목록 (3 Page)