FTZ level16

Wargame/FTZ 2018. 1. 6. 21:13

소스를 보면 함수 포인터에 printf함수의 주소가 들어가있는걸 볼 수 있다. 간단하게 shell함수의 주소로 함수 포인터 변수인 call변수의 메모리 영역을 덮어주면 된다.

 

먼저 gdb로 printit의 함수주소와 shell의 함수주소를 구했다.

 

 

 

그 다음 스택구조를 확인해보니 총 40바이트(buf 20byte + dummy 20byte) 후에 printit함수의 주소가 담겨있는걸 확인할 수 있었다.

 

필요한건 다 구했으니 이제 printit함수의 주소가 담겨있는 영역에 shell 함수의 메모리주소값을 덮어씌워주면 된다.

 

 

 

'Wargame > FTZ' 카테고리의 다른 글

FTZ level18  (0) 2018.01.07
FTZ level17  (0) 2018.01.07
FTZ level15  (0) 2018.01.06
FTZ level14  (0) 2018.01.06
FTZ level13  (0) 2018.01.06
블로그 이미지

JeonYoungSin

메모 기록용 공간

,