All
-
lvl 11Wargame/HackerSchool FTZ 2019. 1. 13. 21:38
→ 힌트 정보 열람. → setreuid 함수 및 strcpy 함수를 볼 수 있다. BOF 문제같지만, strcpy 함수의 인자를 보면, argv[1]을 str로 넣고, print(str)을 한다. 포맷스트링 문제도 된다. → BOF 문제로 먼저 접근해, tmp로 복사한 후, gdb로 디버깅한다. 0x08048470 : push ebp0x08048471 : mov ebp,esp0x08048473 : sub esp,0x1080x08048479 : sub esp,0x80x0804847c : push 0xc140x08048481 : push 0xc140x08048486 : call 0x804834c 0x0804848b : add esp,0x100x0804848e : sub esp,0x80x08048491 : ..
-
lvl 02 gremlin -> coboltWargame/HackerSchool The Load of the BOF Redhat 2019. 1. 13. 21:36
→ 소스코드는 아래와 같다. 1 /* 2 The Lord of the BOF : The Fellowship of the BOF 3 - cobolt 4 - small buffer 5 */ 6 7 int main(int argc, char *argv[]) 8 { 9 char buffer[16]; 10 if(argc < 2){ 11 printf("argv error\n"); 12 exit(0); 13 } 14 strcpy(buffer, argv[1]); 15 printf("%s\n", buffer); 16 } → 어셈블리 코드는 아래와 같다. 0x8048430 0x8048431 0x8048433 0x8048436 0x804843a 0x804843c 0x8048441 0x8048446 0x8048449 0x80..
-
lvl 10Wargame/HackerSchool FTZ 2019. 1. 12. 15:17
→ 힌트 정보 열람. → 공유 메모리라는 힌트를 확인할 수 있으며, 개념공부는 아래의 URL을 참고했다. (개념 이해 추천 : https://www.joinc.co.kr/w/Site/system_programing/IPC/SharedMemory) → key_t 값이 7530임을 의식하고, 공유 메모리 관련 명령어인 "ipcs" 를 실행한다. → key 부분에 0x00001d6a 이고, 해당 데이터를 10진수로 변환하면 7530이다. 해당 공유 메모리 세그먼트의 소유자는 root이며, 권한은 666, byte의 크기는 1028bytes인 것을 볼 수 있다. → 해당 공유메모리를 사용하기 위한 코드를 작성한다. (공유 메모리 함수 사용법 확인) [shmget 함수의 사용법] shmget([key_t key]..
-
lvl 09Wargame/HackerSchool FTZ 2019. 1. 11. 10:23
→ 힌트 정보 확인. → BOF 문제로 확인된다. 일단 소스가 오픈되어서 해당 소스를 바탕으로 컴파일한 후, gdb로 디버깅한다. 0x08048420 : push ebp0x08048421 : mov ebp,esp0x08048423 : sub esp,0x280x08048426 : and esp,0xfffffff00x08048429 : mov eax,0x00x0804842e : sub esp,eax0x08048430 : sub esp,0xc0x08048433 : push 0x80485540x08048438 : call 0x8048350 0x0804843d : add esp,0x100x08048440 : sub esp,0x40x08048443 : push ds:0x8049698 0x08048449 : push..