ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • pwnable.kr - blukat
    pwnable.kr 2023. 6. 6. 21:54
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <fcntl.h>
    char flag[100];
    char password[100];
    char* key = "3\rG[S/%\x1c\x1d#0?\rIS\x0f\x1c\x1d\x18;,4\x1b\x00\x1bp;5\x0b\x1b\x08\x45+";
    void calc_flag(char* s){
    	int i;
    	for(i=0; i<strlen(s); i++){
    		flag[i] = s[i] ^ key[i];
    	}
    	printf("%s\n", flag);
    }
    int main(){
    	FILE* fp = fopen("/home/blukat/password", "r");
    	fgets(password, 100, fp);
    	char buf[100];
    	printf("guess the password!\n");
    	fgets(buf, 128, stdin);
    	if(!strcmp(password, buf)){
    		printf("congrats! here is your flag: ");
    		calc_flag(password);
    	}
    	else{
    		printf("wrong guess!\n");
    		exit(0);
    	}
    	return 0;
    }

    password 파일에서 가져온 100bytes와 사용자가 입력한 100bytes가 일치할 경우 flag를 출력한다.

     

    ?

    permission이 없는 경우에는 파일을 가져오지 못하는데 scp로 blukat 디렉토리 하위 파일을 모두 가져왔더니 password 파일도 있었다.

     

    vi ./password

    "cat: password: Permission denied" 가 적혀있다. 대부분 cat를 이용해 파일을 읽기 때문에 이런 속임수를 준 것 같다.

     

    flag

     

    skilled player에게는 어려운 문제라는데 어렵게 푸는 방법은 뭔지 모르겠다.

    728x90

    'pwnable.kr' 카테고리의 다른 글

    pwnable.kr - horcruxes  (0) 2023.06.07
    pwnable.kr - unlink  (0) 2023.06.06
    pwnable.kr - asm  (0) 2023.05.05
    pwnable.kr - memcpy  (0) 2023.05.04
    pwnable.kr - uaf  (0) 2023.04.24
Designed by Tistory.