[해커스쿨] FTZ LEVEL10 문제 풀이
ㅁ 문제 요약
문제 유형 | System Hacking |
문제 타입 | Linux |
문제 난이도 | 하 |
ㅁ 상세분석
[그림 1] 문제 내용
LEVEL10 계정으로 로그인 하고 hint 파일 내용을 보면 공유 메모리에 대한 hint를 주고 key_t값을 알려준다. LEVEL10 문제는 공유 메모리에 접근하는 소스코드를 작성해서 공유 메모리 데이터를 읽는 문제다.
[그림 2] 공유메모리 개념
LEVEL10 문제를 풀기 위해서는 공유메모리 개념에 대해서 알고 있어야 한다.
공유 메모리(Shared memory)는 여러 프로세스에서 동시에 접근할 수 있는 메모리이다. 문제 내용을 보면 key_t 값을 제공하는데 key_t 값은 공유 메모리를 구별하는 식별 번호이다. 공유 메모리의 위치라고 생각하면 이해하면 쉽다. 즉 key_t 7530 위치에 접근하는 소스코드를 작성하면 된다.
[그림 3] 문제 결과
공격 소스 코드를 간단하게 살펴보면shmget 함수는 공유 메모리를 생성하는 함수다.
shmat 함수는 공유 메모리를 만든 후 프로세스에서 사용하기 위해 공유 메모리에 연결하는 함수다. 최종적으로 shared_memory 변수를 출력하면 LEVEL11 패스워드를 획득할 수 있다.
'Wargame & CTF > Hackerschool FTZ' 카테고리의 다른 글
[해커스쿨] FTZ LEVEL12 (0) | 2016.01.04 |
---|---|
[해커스쿨] FTZ LEVEL11 (0) | 2016.01.04 |
[해커스쿨] FTZ LEVEL9 (0) | 2015.12.30 |
[해커스쿨] FTZ LEVEL8 (0) | 2015.12.30 |
[해커스쿨] FTZ LEVEL7 (0) | 2015.12.29 |