System/Linux2012. 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 실제 값 ---- |

 

 

 

Posted by bbolmin

댓글을 달아 주세요