System/Linux
[BOF] Fedora Core 3,4,5의 기법 요약
bbolmin
2012. 8. 27. 12:07
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 실제 값 ---- |