System

[HackerSchool_FTZ] level 10

gayeon_ 2023. 11. 9. 18:33

공유 메모리를 이용해서 만들어졌다.

 

공유 메모리

: 컴퓨터 환경에서 여러 프로그램이 동시에 접근할 수 있는 메모리이다. 과다한 복사를 피하거나 해당 프로그램 간 통신을 위해 고안되었다. 환경에 따라 프로그램은 하나의 프로세서에서나 여러 개의 프로세서에서 실행할 수 있다.

 

공유 메모리 정보 확인

ipcs 명령어를 사용해서 정보를 확인할 수 있다.

-m: 현재 사용중인 ipc 자원정보

-l: ipc자원 제한 정보

 

 

 

다음 정보들을 얻을 수 있습니다.

 

0x00001d6a == 7530

perms == 666

bytes == 1028

 

 

 

[level10@ftz level10]$ cd tmp
[level10@ftz tmp]$ vi attack.c

tmp로 이동 후 attack.c 파일을 생성해 주었다.

 

 

 

 

 

shmflg 값

1. IPC_CREAT

 - 새로운 영역을 할당한다. 만약 이 값이 사용되지 않았다면, shmget()은 key로 이미 생성된 접근 가능한 공유메모리 영역이 있는지 확인하고 이에 대한 식별자를 되돌려줄 것이다.

 

2. IPC_EXCL

 - IPC_CREAT와 함께 사용하며 공유메모리 영역이 이미 존재하면 에러를 리턴한다.

 

3. mode_flags(하위 9bit)

 - 접근 권한의 지정을 위해서 사용한다. 실행권한은 사용하지 않는다.

 

 

IPC_CREAT옵션으로 0666권한 설정

 

 

shmat 를 이용해서 공유메모리를 '사용가능' 설정

 

 

 

코드 컴파일 후 실행하니 패스워드를 볼 수 있었다.

 

 

 

 

 

 

 

참고 자료

 

https://she11.tistory.com/21?category=816384

 

[HackerSchool] FTZ Level10 풀이

ID : level10 PW : interesting to hack! level10에 접속하자! [level10@ftz level10]$ ls -al total 84 drwxr-xr-x 5 root level10 4096 Jan 14 2010 . drwxr-xr-x 34 root root 4096 Sep 10 2011 .. -rw------- 1 root root 1 Jan 15 2010 .bash_history -rw-r--r-- 1

she11.tistory.com