ftz
level9
fgets 에서 변수 buf 크기보다 30를 넘게 더 입력받아 bof가 발생한다. [그림 1-2] 를 참조하면 [그림 1-3] 를 그릴 수 있다. 따라서 payload 는 "A"*16 + "go" 이다. 성공! 실제 실행파일인 /usr/bin/bof 를 실행하자 level10이 되었다! gdb 를 통해 자세히 분석 ㄲ main + 65 실행 후 eax 값을 보면 주소값이 들어가 있다. 주소로 이동하면 0x000a6f67 값이 들어가 있다. strncpy 에서 2 글자를 가지오면 0x67 0x6f 를 가져오는데 이 값이 아스키값 "go" 라는 걸 알 수 있다. 따라서 성공!
2022. 9. 11. 15:37