md5_calculator 에서 관건인게
base64 encoded string 을 받아서 decode하고 md5를 하게 되는데..
decode해서 받는 배열의 크기가 512byte 밖에 안되고, base64_encodestring같은 경우에는 최대 1024byte를 받는데
이걸 decode했을 때 길이가 512byte보다는 길기때문에 overflow가 발생함.
또 분석해보면
my_hash를 통해서 srand(time())과 rand()로 더하기 빼기를 하면서 계산을 하는데, canary도 같이 넣어서 계산하게 된다.
이거 역분석 하면 canary 우회 가능함 <-- 여기부터 집가서 해야지
'공부' 카테고리의 다른 글
gs 베이스 주소 구하기 (0) | 2016.05.09 |
---|---|
[Codegate] 주저리 (0) | 2016.05.06 |
Kernel Exploit (0) | 2016.02.22 |
Template 공부 (0) | 2016.02.09 |
[MSDN] Allocator (0) | 2016.02.02 |