Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 신촌 소문난집
- 홍대 카페 장쌤
- 금별맥주
- 잠실새내
- graphql
- graphql with reactnative
- graphql mutation error
- 앙버터마카롱
- 화이트해커를 위한 웹 해킹의 기술
- useMutation error
- 예쁜술집 예술
- 홍대 예술
- graphql react native
- graphql 400
- 토라비
- 비동기배열처리방법
- 운정 소바동
- 잠실새내 도그존
- apolloclient
- 화이트 해커를 위한 웹 해킹의 기술
- 도그존
- 지보싶 신촌점
- graphql with RN
- 비동기배열
- promise메서드
- 홍대 토라비
- promise처리
- apollo react native
- typescript
- 고르드
Archives
- Today
- Total
yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆
FTZ level10 풀이 본문
id: level10
pw: interesting to hack!
hint 읽기
공유 메모리에 접근해서 그 내용을 읽어야한다!
더보기
공유 메모리?
: 여러 프로세스들이 함께 사용하는 메모리, 프로세스들이 메모리 자체를 공유하게 됨으로써 오버헤드가 발생하지 않아 속도가 빠르다. 여러 프로세스에서 동시에 접근할 수 있다.
즉, 두명의 사용자가 한 대화를 해당 공유메모리에 접근하면 볼 수 있다!
공유메모리 segment를 확인해보자. (ipcs)
ipcs 명령어: 시스템에서 사용 중인 콜 프로세스의 ipc와 관련된 정보를 출력한다. -m 옵션을 이용하면 공유메모리 세그먼트를 확인할 수 있다.
ipc: message queue(q), shared memory (m), semaphore (s)의 자원을 사용하는 프로세스 간 데이터 통신
공유 메모리 세그먼트가 하나 존재하고 id는 0이며 size는 1028, 권한은 666이다.
혹시 몰라 key값을 10진수로 바꾸어보았는데 7530이 맞다. 우리가 찾는 공유메모리다.
이제 이 공유메모리에 접근하고 내용을 출력하는 코드를 작성해보자.
(/tmp에서 작성한다.)
vi editor로 hack.c 파일을 만들어 코드를 작성하자.
//hack.c
#include <stdio.h>
#include <sys/shm.h>
int main(){
char* shm; //공유메모리의 데이터를 담을 변수
shm=shmat(0,NULL,0);
//shmat: 생성된 공유 메모리를 프로세스에 연결, 사용 가능하게 하는 함수
//인자: 공유메모리 id, 공유메모리가 할당된 주소, 공유메모리 사용 옵션
//id는 ipcs 명령어로 0임을 알아냈음
//할당된 주소가 NULL이면 메모리 주소를 자동으로 할당
//반환 값: 공유메모리의 주소값
printf("%s",shm);
return 0;
}
hack.c를 컴파일 해주고 (gcc -o hack hack.c)
hack을 실행시켜주자!
level11의 pw: "what!@#$?"
'wargame 풀이 > FTZ' 카테고리의 다른 글
FTZ level12 풀이 (0) | 2020.09.25 |
---|---|
FTZ level11 풀이 (0) | 2020.09.23 |
FTZ level9 풀이 (0) | 2020.09.18 |
FTZ level8 풀이 (0) | 2020.09.18 |
FTZ level7 풀이 (0) | 2020.09.16 |
Comments