이번에도 IDA로 먼저 열어보았다.
268바이트의 버퍼에 scanf함수로 입력값을받고 strlen으로 문자열 길이를 v5에 저장하고 입력받은값을 출력하고 종료하는 코드인 듯 하다.
함수목록을 보니 뭐 어디 다른함수를 호출하지는 않고 숨겨진 함수 callMeMaybe 를 호출하면 될것같다.
이전문제처럼 호출할 함수 주소를 바꾸는게아니라 scanf로 main함수의 ret주소를 덮어주는 문제인듯?
그래서 일단 ret주소의 위치부터 알아보았다.
그냥 bp찍고 직접가보니까 역시
0x7ffff7dea0b3 주소로 돌아가는것을 확인.
scanf 입력후의 스택상태를 보니 df10부터 e028 라인까지 버퍼를 채우고 그다음 방금찾은 ret주소부분을 callme 함수주소로 덮어주면 될것같다.
0xe028 - 0xdf10 = 280 이므로 280바이트의 dummy값 + 0x400606 로 payload 작성
간단하게 쉘 획득!!
'Pwnable > Wargame' 카테고리의 다른 글
[HackCTF] RTL_World Write Up (0) | 2021.09.24 |
---|---|
[Dreamhack] pwn-library Write-up (0) | 2021.09.18 |
[HackCTF] x64 Simple_size_BOF Write Up (0) | 2021.09.12 |
[HackCTF] 내 버퍼가 흘러넘친다!!! Write UP (0) | 2021.09.12 |
[HackCTF] Basic_BOF #2 Write Up (0) | 2021.09.03 |