https://ravidusash.tistory.com/115

 

SFPO(Stack Frame Pointer OverFlow)

SFP overflow 공격은 SFP에 한바이트 만큼 overflow를 일으키는 공격 기법이다. SFP overflow를 설명하기전에 stack frame pointer overflow에 대해서 먼저 알고 넘어가자 SFP에서 S는 Stack을 의미하며 스택이란..

blog.ravidusash.kr

본 기법은 leave-ret에 대한 이해가 필요하다 전 글인 SFPO에서 leave-ret을 먼저 이해하고 보도록 하자

 

Fake EBP란 EBP 조작과 leave-ret Gadget을 이용한 공격기법이다.

SFP는 쉘코드의 위치주소 - 4를 ret는 leave-fet 가젯을 갖도록 하여 공격을 수행한다.

이 상태에서 함수 에필로그가 실행 되면 

 

mov esp, ebp가 실행되어 esp는 ebp와 같아질 것이고 pop ebp가 실행되어 ebp는 미리 조작 해 두었던 위치값으로 이동할 것이다.

ret에 의해 pop eip가 실행되어 leave-ret을 가리키며 jmp eip로 이를 수행하게 된다.

그렇게 esp는 leave 명렁어대로 mov esp, ebp 다시금 ebp가 가리키는 곳으로 이동하게 된다.

pop ebp가 실행되어 ebp는 어디론가 가고 esp는 sehllcode를 가리키게 된다.

ret명령어에서 pop eip가 실행 되어 eip가 쉘코드 주소르 가리키게 되고 jmp eip를 통해 쉘이 실행된다.

이렇게 우리는 FEBP를 통해 쉘을 획득 할 수 있다.

'Basic Concepts > System' 카테고리의 다른 글

PLT & GOT 정리  (0) 2020.04.24
RTL(Return to libc) & chaining  (0) 2020.04.23
SFPO(Stack Frame Pointer OverFlow)  (0) 2020.04.22
BOF(Buffer Over Flow)  (0) 2020.04.22
RET Sled  (0) 2020.04.22

+ Recent posts