HackCTF/Pwnable
[HackCTF] Pwnable - x64 Buffer Overflow
Shinya Matsuri
2020. 7. 8. 19:07
pwnable 5번 문제인 x64 Buffer Overflow 이다.
입력을 받고 Hello와 내가 입력한 내용을 그대로 출력해준다.
제목 그대로 64비트 elf 파일이고, NX-bit가 걸려있으니 쉘코드를 실행 못하고, RELRO도 걸려있으니 got overwrite 도 못한다.
scanf로 s에 문자열 입력을 받는다.
더미값으로 채워서 ret을 덮을 수 있을 것이다.
그럼 ret에 넣을 뭔가 주소를 찾아야하는데..
callMeMaybe 함수가 보였다.
보다시피 쉘을 준다.
callMeMaybe 함수의 주소를 확인했다.
64비트 환경에서 sfp는 8바이트다.
그리고 s의 위치는 rbp-110h이다.
즉, s에 0x110 + 8(sfp) 만큼 더미데이터를 입력하고, callMeMaybe 함수의 주소로 ret을 덮어쓰면 될 것이다.
0x110 = 272(10)
272 + 8 = 280
p callMeMaybe = 0x400606
익스코드를 짜보자.
성공적으로 익스플로잇이 된다.