picoCTF 2019 NewOverFlow-1 - Points: 200

2697 단어 picoCTFCTF

문제





풀어봤어



어제까지 전혀 눈치채지 못했지만 200점의 문제가 아직 남아있었습니다.
새로운 추가?

소스를 살펴보겠습니다.



picoCTF 2019 OverFlow 2 - Points: 250
htps : // m / CTF man / ms / 52d658d15c2f902c3 네

이것과 같은 느낌으로 vuln()의 리턴 주소를 flag()의 선두로 해 주면 좋은 문제라고 생각합니다.
이번에는 인수가 없으므로 이전 문제보다 편안한 문제입니다.

우선은 flag()의 선두 주소를 조사합니다.



flag()의 선두 주소는 0x0000000000400767이라는 것을 알았습니다.
응? 평소보다 자릿수가 많다고 생각합니다.
64bit입니까?



64비트였습니다.
자리수가 바뀌는 것만으로 내용은 함께 생각해도 좋습니까?
64bit 처음인 것 같아요.
우선 지금까지 거리의 방법으로 해 보겠습니다.

다음에 하는 것은 몇 문자 입력하면 vuln()의 리턴 주소가 덧쓰기되는지 조사합니다.
적당히 100자를 넣어보십시오.



esp 없어-라고 생각하면 64bit이므로 rsp군요.
rsp는 0x37665866이라는 것을 알았습니다.
리틀 엔디안을 조심하면서 문자를 조사합니다.



fXf7이었습니다.
입력한 문자열을 확인하면 73문자부터였습니다.



여기를 flag()의 선두 주소에 재기록해 실행해 보겠습니다.



음 - 좋지 않았습니다.
가까운 주소로 시도해 봅니다.



?
팝의 다음 위치로 날아가면 왜 flag가 나왔습니다.
수수께끼입니다.

좋은 웹페이지 즐겨찾기