Pwnable
-
FTZ. level 11 정리Pwnable/FTZ 2020. 2. 25. 05:17
level11 비밀번호 : what!@#$? 먼저 힌트를 본다. 뭔가 strcpy에서 오버플로우가 일어날꺼같지 않은가!? (내 생각은 str의 크기가 주어졌는데 그 이상 입력할 수 있으면 오버플로우가 일어날꺼같아서) 그럼 attackme를 gdb로 확인해보자. [level11@ftz level11]$ gdb attackme (gdb) set disassembly-flavor intel (gdb) disas main main+27 부터 main+48 까지 strcpy 부분이므로 해석을 자세히 해보면 //이전까지 esp = ebp - 280 0x0804848b :add esp,0x10 //: esp = [ebp - 264] 0x0804848e :sub esp,0x8 //: esp = [ebp - 272] 0..
-
FTZ. 함수 프롤로그 / 함수 에필로그Pwnable/FTZ 2020. 2. 11. 05:37
함수 프롤로그 : 함수 내에서 사용할 스택 프레임을 설정한다. esp // 스택의 마지막 부분을 저장하면 push, pop 에 따라 4씩 값이 변한다. eip // 다음에 실행하여야 할 명령어가 존재하는 메모리 주소가 저장됨. ebp // 스택의 시작지점 주소가 저장된다. (스택의 처음 부분) push // 스택 값을 넣는다. esp의 값이 4만큼 줄어들고 이 위치에 새로운 값이 채워진다. push ebp // 돌아갈 곳의 주소를 스택에 저장하는 것이다.(이때 esp가 4만큼 움직인다.) mov // 소스에서 목적지로 데이터를 복사한다. pop // esp 레지스터가 가르키고 있는 위치의 스택 공간에서 4byte 만큼을 목적지 피연산자에 복사하고 esp 레지스터의 값에 4를 더한다. 함수 에필로그 : 함..
-
FTZ . level9 정리Pwnable/FTZ 2020. 2. 11. 05:26
login : level9 password : apple 가장 먼저 ls 명령어를 통해서 파일들을 확인해보자 [level9]$ ls hint tmp [level9]$ cat hint hint 를 확인해보면 (strncmp : 문자열을 비교하는 함수 / fgets : [저장할 변수, 데이터의 최대 크기, 입출력 방법]) // hint의 소스코드 #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 ); s..
-
Pwnable. 해쿨핸드북 요약 정리 (5차)Pwnable/이론 2020. 1. 2. 18:54
Section 22. SetUID , SetUID bit 설정하는 방법 1. USER에 SetUID bit 부여하기 > chmod u+s (파일명) 2. USER에 부여된 SetUID bit 제거하기 > chmod u-s (파일명) 3. GROUP에 SetGID bit 부여하기 > chmod g+s (파일명) 4. GROUP에 부여된 SetGID bit 제거하기 > chmod g-s (파일명) 5. SetUID와 SetGID bit를 모두 부여하기 > chmod ug+s (파일명) or > chmod +s (파일명) 6. SetUID와 SetGID bit를 모두 제거하기 > chmod ug-s (파일명) or > chmod -s (파일명) #내 서버에서 SetUID bit가 부여된 파일들 찾아보기 > f..
-
Pwnable. 해쿨핸드북 요약 정리 (4차)Pwnable/이론 2020. 1. 2. 04:25
Section 16. 스택을 그리는 세가지 방법 1, 세로로 그리기 2, 세로로 그리되 위 아래를 거꾸로 하는 방법 3, 가로로 그리기(탑 바텀) Section 17. 스택에 저장되는 값들 살펴보기 지역변수, 리턴 어드레스, 함수의 인자들 = 스택 프레임 Section 18. 큐 영역도 알고 넘어가기 선입선출형 구조 (FIFO) Section 19. 리모트 버퍼 오버플로우와 로컬 버퍼 오버 플로우 1단계 : 정보 수집 (해킹 대상에 대한 정보 수집) 2단계 : 리모트어택 (취약점을 이용하여 서버안으로 들어갈 수 있는 접근권한을 획득해내는 과정) 3단계 : 로컬 어택 (현재 자신이 가지고 있는 권한을 최고 관리자 권한으로 상승시키는 공격) 4단계 : 흔적 삭제 (자동로그삭제 툴을 이용하거나 로그 파일을 날..