-
FC3, FC4를 클리어하면서...시스템/Lord of the BOF: FC3 2018. 1. 29. 03:34
DISCLAIMER: 기본적으로 이건 알아둬야겠다 하고 퍼온 글이다. 출처를 알려주시면 즉시 쓰겠습니다.
Fedora Core3 : 인자 참조를 ebp로 하기 때문에 fake ebp(leave)를 이용한 공격
| buf | 인자로 사용할 부분-8을 ebp로 조작(주로 GOT이용)| &execl+3 | ? | ? | ? | ? | ....
Fedora Core4 : 인자 참조가 esp로 바껴서 고정된 인자값까지 ret sleding을 넣어 공격
| buf | ebp | ret | &ret | &ret | &ret | &ret | &ret | &ret | &execl | ? | 고정된 인자값 | ... NULL |
Fedora Core5 : 함수 프롤로그, 에필로그 부분에서 ecx를 이용해 ret주소를 알아내므로 ecx 조작을 이용해 공격
| buf | ecx | ebp | ret | .... | ret | ecx가 가리키는 부분 | .....
--> | ret sleding + main epilogue | ecx 1byte \x00 | --------ebp, ret들 ---------| argv, environ pointer(esp가 올라옴) | --- argv, environ 실제 값 ---- |