Stack pivoting

·

1 min read

Stack pivoting이란?

ROP를 해야하는데 ret까지 밖에 bof가 가능할 때 사용 가능한 기법입니다.

  • 특정 영역에 Write 권한이 있을때 영역에 가젯들을 세팅해놓고 sfp를 조작하고 ret에 leave; ret 가젯을 넣어서 원하는 주소를 실행시킬 수 있습니다.

leave; ret 가젯

leave와 ret 명령어는 각각 아래와 같은 동작을 합니다. leave

mov esp, ebp pop ebp

ret

pop eip jmp eip

때문에 leave; ret 가젯 이전에 rbp값을 [원하는 주소 - 8] 로 세팅 할 수 있다면 원하는 주소를 실행시킬 수 있습니다.