SMALL
level10 // interesting to hack!
대화방에서 대화를 하고있는데 그 대화방은 공유메모리를 이용!
key_t -> 7530 , 도청하기
한번 여러모로 시도를 해보자.
사용자 정보와 , telnet등등 여러가지를 시도해봤는데 아닌 것 같다.. 진짜 그냥 삽질
공유메모리에 대해 검색해보니 보기쉽게 정리해놓은 자료가있었다. ( https://geundi.tistory.com/52 )
이번 문제에서는 공유메모리와 관련있는 함수를 이용하여 소스를짜서 푸는 문제이다.
shmget, shmat을 이용하여 이 문제에 해답을 찾을 수 있었다.
공유메모리의 저장되어 있는 내용을 보려면 shmget 함수를 이용해 대화방의 키값을 넣어 공유메모리 식별자를 반환받고
반환 받은 공유메모리 식별자를 이용해 shmat함수를 이용해 공유메모리의 주소를 알아내어 공유메모리의 내용을 출력해주면 된다.
// answer.c
#include <stdio.h>
#include <sys/types.h>
#include <sys/shm.h>
int main(){
int number;
void *ch;
number = shmget(7530, 0, IPC_CREAT);
ch = shmat(number, 0, 0);
printf("%s\n",ch);
return 0;
}
권한 문제가 있기때문에 /tmp에서 만들고 컴파일후 실행하면!
도청 성공!
처음본 유형과 처음본 지식이라 생각보다 어려웠다 뭐든 처음본 문제가 젤 어려운듯..?