OS/Linux

[ftz] hacker school level11 풀이

Dexter_- 2020. 4. 27. 17:48
728x90
반응형

 

 

 

Free Training Zone level11 풀이


 

1. cat 명령을 사용하여 hint 출력

2. attackme 파일 tmp 디렉터리로 복사

쓰기 권한이 있는 tmp 디렉터리로 이동하여 attackme 파일을 gdb 로 분석한다.

3. gdb 분석

hint 에서 언급한 코드에서 str[256] 은 위 빨간 박스에서 할당된다. 

할당은 264만큼 받았음으로 dummy가 8byte 존재하게된다. 

스택 구조를 그려보면 아래와 같다.

4. shell code 환경변수 등록 및 shell code 주소 찾기

41byte shell code는 아래와 같다.

\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

위 shell code를 export 명령을 통해 아래와 같이 환경변수에 등록해준다.

환경변수에 등록된 shell code의 주소를 찾기 위해 아래와 같이 코드 작성 후 컴파일하여 실행한다.

위에서 계산했던 268byte에 "A"를 채워넣고 뒤에 shell code주소를 호출하면 오버플로우에

의해 return 실행 부분에서 shell code가 실행된다.

 

아래는 작성된 페이로드 코드이다.

 

 

 

 

 

728x90
반응형