02.Frame Pointer Overwrite(One-byte Overflow) - x64
BackGround 해당 취약성은 다음과 같은 구조에서 발생한다. vuln() 함수에서 Overflow로 인해 main() 함수의 Frame Pointer를 1 byte 변경 할 수 있다. vuln() 함수가 종료 될 때 변경된 Frame Pointer는 leave 명령어에 의해 RBP 레지스터에 저장된다. main() 함수가 종료 될 때 RBP 레지스터에 저장된 Frame Pointer는 leave 명령어에 의해 RSP 레지스터에 저장된다. 즉, 이로 인해 ret 명령어에 의해 이동할 영역을 변경 할 수 있다. 공격하는 형태는 Frame faking과 동일 하다. 단, Frame faking은 Return Address 영역까지 Overflow 했으나, FPO는 Frame Pointer의 1 byte를..
Pwnable Exploitation/05.Frame Pointer Overwrite
2020. 6. 29. 21:18