Frame Pointer Overflow ( 프레임 포인터 오버플로우, FPO )
·
Buffer OverFlow
지난 번에 FakeEBP에 대한 글을 작성하였는데 비슷한 원리를 가지는 공격 기법으로 FPO가 있다. 사용 환경에는 다음과 같은 조건이 따른다. 1. SFP 영역에서 1 바이트 오버플로우가 반드시 일어나야 함 2. 메인 함수 이외 서브 함수가 필요함 이번에도 스택 구조를 대충 그려보면서 설명할 것이다. 일단 바이너리에서 버퍼를 40만큼 선언했다면 공격자의 페이로드는 총 41 바이트가 된다. FakeEBP와 달리 FPO는 리턴 주소는 변조하지 않고 SFP 역시 1바이트만 오버플로우 시키기 때문이다. 어쨋든 페이로드를 올리고 서브 함수의 에필로그 직전까지를 보면 우측과 같은 구조를 가지게 된다. 서브 함수의 에필로그 중 leave 명령어의 "mov esp,ebp"가 실행되면 좌측 구조처럼 esp/ebp 모두..