level16과 유사하지만 shell 함수가 빠져있다.
buf 오버플로우를 이용하여 *call 포인터 변수에 환경변수에 등록한 shellcode
주소를 넣어서 shellcode를 실행 시켜 level18 shell에 접근할 수 있다.
gdb 분석을 위해 쓰기권한이 있는 tmp 디렉터리로 attackme 파일을 복사한다.
위 disassembler 를 스택으로 표현하면 아래와 같다.
export 명령을 이용하여 41byte shellcode를 환경변수에 등록한다.
환경변수 shellcode 주소를 획득하는 코드를 작성하여 주소를 확인한다.
shellcode 주소 0xbffffc14를 *call 포인터 변수 위치에 넣어주면 위와 같이 level18 Password를 획득할 수 있다.
[ftz] hacker school level19 풀이 (0) | 2020.04.28 |
---|---|
[ftz] hacker school level18 풀이 (0) | 2020.04.28 |
[ftz] hacker school level16 풀이 (0) | 2020.04.28 |
[ftz] hacker school level15 풀이 (0) | 2020.04.28 |
[ftz] hacker school level14 풀이 (0) | 2020.04.28 |