hint를 풀어보자
이번에는 함수 포인터가 있다.
call = printit이니까 Hello there!이 출력될것이다.
buf는20인데 48만큼입력을 받는것을 이용하여 call을 했을때
쉘을 따도록 해보자
일단 gdb로 뜯어보자
이러하다
main+24에서 buf를 를 할당받고
main+6은 포인터함수를 할당받는거라고 추측한다.
buf는 ebp-56-56이고
포인터 함수는 ebp-16이니까 거리는 40이다.
우리는 ebp-16에있는 함수를 shell함수로 바꿔야 하니까
shell함수의 시작주소를 봅시다.
0x080484d0이 시작주소인것을 확인할 수 있다.
그러면 포인터함수와 buf의 거리가 40인것을 이용해봅시다.
성공!
'Write-Up > FTZ(Write-Up)' 카테고리의 다른 글
[FTZ] level18 (Write-Up) (0) | 2019.07.12 |
---|---|
[FTZ] level17 (Write-Up) (0) | 2019.07.12 |
[FTZ] level15 (Write-Up) (0) | 2019.07.09 |
[FTZ] level14 (Write-Up) (0) | 2019.07.09 |
[FTZ] level13 (Write-Up) (0) | 2019.06.19 |