반응형
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 |