WARGAME
-
-
Lord of BOF - Challenge [9번] Troll -> VampireWARGAME/LORD OF BOF 2018. 7. 4. 18:32
[Summary]1. 39행의 취약한 strcpy 함수를 이용하여 40 바이트의 buffer 배열에 40바이트 이상의 값을 입력함으로써 EIP 레지스터를 덮어씌울 수 있다. 2. argv[0] 위치에 쉘코드를 위치 시킬 수 있다. 3. buffer 배열에 dummy(44) 입력시킨 후 EIP 레지스터를 argv[0] 의 주소로 변조하여 ShellCode를 실행시킨다. 4. 프로그램 실행 권한의 쉘을 획득하여 flag를 획득한다.[Sourcecode]/* The Lord of the BOF : The Fellowship of the BOF - vampire - check 0xbfff */ #include #include main(int argc, char *argv[]) { char buffer[40]; ..
-
Lord of BOF - Challenge [8번] Orge -> TrollWARGAME/LORD OF BOF 2018. 7. 4. 17:39
[Summary]1. 39행의 취약한 strcpy 함수를 이용하여 40 바이트의 buffer 배열에 40바이트 이상의 값을 입력함으로써 EIP 레지스터를 덮어씌울 수 있다.2. argv[0] 위치에 쉘코드를 위치 시킬 수 있다.3. buffer 배열에 dummy(44) 입력시킨 후 EIP 레지스터를 argv[0] 의 주소로 변조하여 ShellCode를 실행시킨다.4. 프로그램 실행 권한의 쉘을 획득하여 flag를 획득한다.[Sourcecode]/* The Lord of the BOF : The Fellowship of the BOF - troll - check argc + argv hunter */ #include #include extern char **environ; main(int argc, cha..
-
Lord of BOF - Challenge [7번] Darkelf -> OrgeWARGAME/LORD OF BOF 2018. 7. 4. 16:13
[Summary]1. 44행의 취약한 strcpy 함수를 이용하여 40 바이트의 buffer 배열에 40바이트 이상의 값을 입력함으로써 EIP 레지스터를 덮어씌울 수 있다.2. argv[0] 위치에 쉘코드를 위치 시킬 수 있다.3. buffer 배열에 dummy(44) 입력시킨 후 EIP 레지스터를 argv[0] 의 주소로 변조하여 ShellCode를 실행시킨다.4. 프로그램 실행 권한의 쉘을 획득하여 flag를 획득한다.[Sourcecode]/* The Lord of the BOF : The Fellowship of the BOF - orge - check argv[0] */ #include #include extern char **environ; main(int argc, char *argv[]) {..
-
Lord of BOF - Challenge [6번] Wolfman -> DarkelfWARGAME/LORD OF BOF 2018. 6. 25. 11:32
[Summary]1. 38행의 취약한 strcpy 함수를 이용하여 40 바이트의 buffer 배열에 40바이트 이상의 값을 입력함으로써 EIP 레지스터를 덮어씌울 수 있다.2. egghunter 와 buffer hunter 에 이어 이번문제에 새롭게 추가된 check argv length 를 우회하기 위해 argv[1] ShellCode 를 입력한다.3. buffer 배열에 dummy(44) 입력시킨 후 EIP 레지스터를 argv[1] 의 주소로 변조하여 ShellCode를 실행시킨다.4. 프로그램 실행 권한의 쉘을 획득하여 flag를 획득한다.[Sourcecode]/* The Lord of the BOF : The Fellowship of the BOF - darkelf - egghunter + buf..
-
Lord of BOF - Challenge [5번] Orc -> WolfmanWARGAME/LORD OF BOF 2018. 6. 24. 21:17
[Summary]1. 31행의 취약한 strcpy 함수를 이용하여 40 바이트의 buffer 배열에 40바이트 이상의 값을 입력함으로써 EIP 레지스터를 덮어씌울 수 있다.2. 22행의 egghunter 와 34행의 buffer hunter를 우회하기 위해 argv[1] 에 ret(c3) 을 넣고 EIP 레지스터를 argv[1] 의 주소로 변조(ret sled)할 수 있다3. buffer 배열에 ret instruction(4) 와 dummy(40), system 함수의 주소, dummy(4), system 함수의 인자(/bin/sh)를 입력시킨 후 EIP 레지스터를 argv[1] 의 system 함수 부분의 주소로 변조하여 system 함수를 실행시킨다.4. 프로그램 실행 권한의 쉘을 획득하여 flag..
-
Lord of BOF - Challenge [4번] Goblin -> OrcWARGAME/LORD OF BOF 2018. 6. 21. 16:07
[Summary]1. 32행의 취약한 strcpy 함수를 이용하여 40 바이트의 buffer 배열에 40바이트 이상의 값을 입력함으로써 EIP 레지스터를 덮어씌울 수 있다.2. 22행의 egghunter를 우회하기 위해 buffer 배열(스택영역)에 ret(c3) 을 넣고 EIP 레지스터를 buffer 배열의 주소로 변조(ret sled)할 수 있다3. buffer 배열에 ret instruction(4) 와 dummy(40), system 함수의 주소, dummy(4), system 함수의 인자(/bin/sh)를 입력시킨 후 EIP 레지스터를 buffer 배열의 system 함수 부분의 주소로 변조하여 system 함수를 실행시킨다.4. 프로그램 실행 권한의 쉘을 획득하여 flag를 획득한다.[Sour..
-
Lord of BOF - Challenge [3번] Cobolt -> GoblinWARGAME/LORD OF BOF 2018. 6. 20. 16:09
[Summary]1. 10행의 취약한 gets 함수를 이용하여 16 바이트의 buffer 배열에 16바이트 이상의 값을 입력함으로써 EIP 레지스터를 덮어씌울 수 있다.2. buffer 배열에 dummy(20) 값과 system 함수의 주소, dummy(4), system 함수의 인자(/bin/sh)를 입력시킨 후 EIP 레지스터를 buffer 배열의 system 함수 부분의 주소로 변조하여 system 함수를 실행시킨다.3. 프로그램 실행 권한의 쉘을 획득하여 flag를 획득한다.[Sourcecode]/* The Lord of the BOF : The Fellowship of the BOF - goblin - small buffer + stdin */ int main() { char buffer[16]..