level12
-
Level12 (golem -> darkknight)$ 시스템 해킹 $/Los Of BufferOverflow 2020. 1. 1. 14:33
위의 코드를 확인해 보면 FPO 기법을 이용하는 문제 입니다. SFP는 무엇인가, FPO 기법이 무엇인가 에 대해서 먼저 공부를 해봐야 할 것 같습니다. FPO를 사용하기 위해서는 필요한 조건이 존재 합니다. 1. SFP 영역에서 1바이트 오버플로우가 반드시 일어나야 합니다. (strncpy에 보면 41-40 = 1 바이트) 2. 메인 함수 이외의 sub 함수가 필요합니다. (main 함수 이외에 problem_child 함수가 존재 한다.) SFP 란? Stack Frame Pointer의 약자로 Saved Frame Pointer 라고도 불립니다. 이전의 함수의 EBP 주소를 저장하는 공간 입니다. 1바이트를 이용해서 OverFlow를 실행해야 하는데, 여기서 1바이트는 SFP의 첫 바이트를 이야기 ..