본문 바로가기
  • True knowledge exists in knowing that you know nothing. -Socrates-

Study/ftz29

ftz level18 FTZ (Free Training Zone) level18 1. 환경 : window102. VM, Red Hat Linux 9.0, putty id : level18pw : why did you do it 1. cat hint를 사용하여 코드를 확인합니다. 2. 코드 분석1. 1byte string 의 이름에 100공간을 준다]2. Int (4byte) check을 선언한다.3. X=04. Int count = 0;While 문으로 들어가보면 상당히 많은 것들이 있다가장 중요하게 봐야할 것은1) If(check== 0xdeadbeef) 이다Check이 deadbeef와 같으면 shellout함수를 호출한다즉 check 영역을 deadbeef로 수정하여 shellout함수를 호출하게 해야한다. 두번째로 .. 2016. 9. 13.
FTZ level17 FTZ (Free Training Zone) level17 1. 환경 : window102. VM, Red Hat Linux 9.0, putty id : level17pw : king poetic 1. cat hint를 사용하여 코드를 확인합니다. 분석을 해보면 16번과 동일한 방법이지만 16번은 쉘코드를 실행시키는 함수가 있고 그 함수의 주솟값을 스텍에 넣어주어 권한을 얻었지만 17번은 환경변수를 만들어 그 주솟값을 넣어주면 됩니다. 16번과 동일한 스텍구조이기 때문에 56-16=40 까지의 값을 채우고 환경변수가 있는 주솟값을 넣어주면 프로그램이 실행 되고 call포인터에 환경변수의 주솟값이 저장되어 마지막 코드에서 call를 호출할 때 환경변수를 호출하게 되어 권한을 획득할 수 있습니다. 이런 방식.. 2016. 7. 13.
FTZ level16 FTZ (Free Training Zone) level16 1. 환경 : window102. VM, Red Hat Linux 9.0, putty id : level16pw : about to cause mass 1. Cat hint를 사용하여 코드를 본다. 2. 코드를 분석한다. Int crap 은 crap이라는 이름의 변수 [4byte]를 만든다. Void(*call)()=printit; call이라는 포인터 함수에 printit의 주소를 넣는다 Char [20] char의 변수명에 20의 버퍼 공간을 만든다. Feget 함수를 이용하여 입력받는다 (stdin은 키보드 같은 표준입력 장치에서 입력을 받는 것 ) Call() 함수를 호출 한다. 3. 분석 Call이라는 함수 호출 이전에 printit의 .. 2016. 7. 12.
FTZ level15 FTZ (Free Training Zone) level15 1. 환경 : window102. VM, Red Hat Linux 9.0, putty id : level15pw : guess what 1. cat hint를 확인하여 코드를 분석한다.14번과 비슷하게 보이지만 여기서 중요하게 봐야할 것은 포인터 입니다. *check라는 의미는 check이 주솟값을 따라 갔을 때 check에 있는 값을 의미합니다. 2. gdb로 분석여기서 가장 중요한 것은 cmp 로 비교할 떄 0xdeadbeef 와 비교를 하는 것은 [eax] 값입니다.그러므로 0xdeadbeef의 주솟값(포인터이기 때문에)을 입력하면 그 주솟값이 가리키고 있는 것이 0xdeadbeef 이면 쉘코드를 실행시킵니다. x/x 주어진 주솟값의 내용을.. 2016. 7. 12.
FTZ level14 FTZ (Free Training Zone) level14 1. 환경 : window10 2. VM, Red Hat Linux 9.0, putty id : level14pw : what that nigga want? 1. Cat hint 를 통해 힌트를 확인합니다. Int형 crap 변수 하나 . int형check변수 하나 그다음 char형 buf[20]의 순 서로 Stack에 쌓인다. fget함수를 통해 buf를 45개의 갯수까지 입력 받는다. Check 변수안의 값이 0xdeadbeef와 같으면 level15의 쉘코드를 실행시킵니다. 2. gdb를 통해 stack 의 구조를 확인한다.If 로 비교할때를 gdb로 확인해보면 ebp에서 -16떨어진 곳과 0xdeadbeef를 비교한다.즉 check 스텍의.. 2016. 7. 12.
buffer over flow 필독 자료 WOWHACKER님이 작성하신 bof 기본 개념 자료입니다. 저는 이 자료를 보고 bof를 공부했습니다. 정말 많은 도움이 되니 bof를 모르시는 분들은 꼭 !! 추천해 드립니다. 2016. 7. 12.