본문 바로가기
Security/Pwnable

FTZ Level 16

by J0DEV 2021. 8. 9.
반응형

Level 16에 접속해서

파일들과 힌트를 봅니다.

함수 2개와 main 함수 1개 가 있네요

 

그런데 메인 함수를 보면

 

전 레벨의 메모리 구조와 비슷하다는 것을 눈치챌 수 있습니다.

 

main 함수에서

포인트 함수를 호출하는게 보입니다.

 

그렇다면 여기서

 

버퍼오버플로우를 일으켜서 포인터함수를 호출하는 부분의 주소를 shell()함수 주소로 바꾸어주면

쉘창이 나타난다고 생각해볼 수 있습니다.

 

(전 레벨의 프로그램과 비슷하므로 buf와 포인터 함수 사이의 더미는 20byte라고 생각했습니다.)

 

 

 

프로그램을 gdb를 사용해 shell함수의 시작 주소를 찾습니다.

shell+1의  0x080484d0이 되겠군요.

 

 

그럼 바로 코드를 작성해봅시다.

(python -c 'print "A"*40 + "\xd0\x84\x04\x08"';cat)|./attackme

 

간단하게 풀 수 있습니다.

반응형

'Security > Pwnable' 카테고리의 다른 글

FTZ Level 18  (0) 2021.08.09
FTZ Level 17  (0) 2021.08.09
FTZ Level 15  (0) 2021.08.09
FTZ Level 15  (0) 2021.08.09
FTZ Level 14  (0) 2021.08.09