FTZ 9번 문제



Hint

1


해당 문제는 Buffer overflow 문제이다.
___

2


hint에 나온 경로로 이동해 임의값을 넣어보았지만 아무 동작도 하지 않았다.

gdb로 해당 파일을 분석하고자 하였지만 권한이 없었기 떄문에 ~/tmp 경로에 파일을 만들어 분석하였다
___

3
hint의 소스코드를 보면 buf의 크기는 10인데 fgets 함수에서는 40까지 입력 받을 수 있기 떄문에 취약점이 발생하고 if문을 보면 buf2가 “go” 라는 문자열이면 Good skill을 출력하고 쉘을 획득 할 수 있다고 되어있지만 buf2는 입력받지 않기 때문에 입력 가능한 buf 문자열에 overflow를 시켜 공격을 시도해야한다.
___ 4


gcc로 컴파일을 하여 gdb로 main 문을 열었다.
fgets와 strncmp함수의 거리를 계산해보자.


5 16진수인 해당 주소값을 넣고 둘을 계산해보면 10진수 16‬이라는 계산 결과가 나온다.


6 A를 16만큼 채우고 go라는 문자를 채우면 buf2에 값이 들어가 해당 문제가 풀리게 된다.


7