hackerschool 문제/FTZ

[Hackerschool FTZ] - level 10 문제

Roronoa 2022. 11. 22. 03:44
반응형

문제 내용

[그림 1] 힌트 내용 확인

힌트 내용을 보면 두명이 비밀스러운 대화를 나누는데 공유메모리를 이용하였고 key_t 값이 7530이라고한다.

두사람의 대화를 도청하여 level11의 권한을 얻으라고함!!

 

[그림 2] ipcs 명령어

프로세스간의 데이터가 공유되어야할때 ipc가 이를 가능하게 한다.

ipcs 명령어를 통해 IPC를 위한 자원들의 리스트를 출력하였다.

key 값이 0x1d6a이다. 10진수로 변환하면 힌트에서 나온 7530이 된다. 바이트값은 1028이고 권한은 666 owner은 root이다.

바로 코드를 짜보겠다.

https://reakwon.tistory.com/96

 

[리눅스] 공유메모리 (Shared Memory) 개념과 예제(shmget, shmat, shmdt, shmctl)

공유메모리(Shared Memory) 프로세스에서 메모리는 해당 프로세스만이 사용하는게 일반적입니다. 메모리에는 명령어, 지역 변수, 동적 변수, 전역 변수와 같이 데이터가 존재하는데 그 프로세스만

reakwon.tistory.com

해당 블로그를 참고하여 작성하였다.

 

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

int main(){
        int a;
        char* b;
        a = shmget(7530,1028,IPC_CREAT|0666);
        b = shmat(a,NULL,0);

        printf("%s",b);

        return 0;
}

shmget : 인자로 전달된 key의 값으로 공유메모리를 얻고 공유메모리 조각의 id를 돌려준다. 결과값은 id값 반환

shmat : 공유메모리를 얻었으면 메모리의 위치에 이 프로세스를 묶는(attach) 시스템 콜

IPC_CREAT는 새로운 메모리 세그먼트를 만든다.

shmat 두번째 인자가 NULL일경우 커널에서 적절한 주소를 반환하여 준다.

 

[그림 3] 대화 도청

대화 도청에 성공하였고 level11의 패스워드를 출력하였다.

 

level11 password

what!@#$?
반응형