level14
힌트를 확인해보면 buf는 20 byte인데 45 byte를 입력받고 있다. 또한 check의 값을 확인해 그 값이 "\xdeadbeef"가 되면 level15의 권한으로 쉘을 실행할 수 있다.
cmp 명령을 살펴보면 [ebp-16]과 비교하고 있다. 또한 그 위를 살펴보면 [ebp-56]에 fgets 함수로 값을 대입받는 것을 확인할 수 있다. 따라서 56-16인 40만큼 값을 채우고, 그 뒤에"\xdeadbeef"가 들어가게 되면 문제가 해결된다.
gdb로 임의의 40 byte와 "\xed\xbe\xad\xbe"를 넣어주니 정상적으로 "\xdeadbeef"가 들어간 것을 확인할 수 있다.
위에서 입력한 값 그대로 입력하고 cat 명령으로 잡아준 뒤 my-pass 명령어를 입력하니 패스워드가 출력됐다.
guess what
728x90
'CTF > 시스템' 카테고리의 다른 글
해커스쿨 FTZ level16 (0) | 2020.09.24 |
---|---|
해커스쿨 FTZ level15 (0) | 2020.09.24 |
해커스쿨 FTZ level13 (0) | 2020.09.22 |
해커스쿨 FTZ level12 (0) | 2020.09.17 |
해커스쿨 FTZ level11 (0) | 2020.09.17 |