Bace

picoCTF 2018 - absolutely relative 본문

picoCTF 2018/General Skills

picoCTF 2018 - absolutely relative

Bace 2020. 5. 22. 18:27

 

주어진 소스를 봐봤다.

#include <stdio.h>
#include <string.h>

#define yes_len 3
const char *yes = "yes";

int main()
{
    char flag[99];
    char permission[10];
    int i;
    FILE * file;


    file = fopen("/problems/absolutely-relative_2_69862edfe341b57b6ed2c62c7107daee/flag.txt" , "r");
    if (file) {
    	while (fscanf(file, "%s", flag)!=EOF)
    	fclose(file);
    }   
	
    file = fopen( "./permission.txt" , "r");
    if (file) {
    	for (i = 0; i < 5; i++){
            fscanf(file, "%s", permission);
        }
        permission[5] = '\0';
        fclose(file);
    }
    
    if (!strncmp(permission, yes, yes_len)) {
        printf("You have the write permissions.\n%s\n", flag);
    } else {
        printf("You do not have sufficient permissions to view the flag.\n");
    }
    
    return 0;
}

 

permission.txt 를 읽어오고 yes와 일치하는지 비교 후 일치하면 flag를 주고 아니면 do not have ~ 를 주는 프로그램이다.

 

주어진 쉘서버 경로에 들어가서 permission.txt 파일을 만들어봤다.

permission denied가 뜬다.

 

홈 디렉토리에서 파일을 만들어보았다.

파일이 만들어진다.

 

홈디렉토리에서 절대 경로를 주어 absolutely-relative 파일을 실행시켜보았다.

flag가 뜬다.

 

picoCTF{3v3r1ng_1$_r3l3t1v3_372b3859}

'picoCTF 2018 > General Skills' 카테고리의 다른 글

picoCTF 2018 - you can't see me  (0) 2020.05.22
picoCTF 2018 - environ  (0) 2020.05.21
picoCTF 2018 - Aca-Shell-A  (0) 2020.05.21
picoCTF 2018 - grep 2  (0) 2020.05.21
picoCTF 2018 - pipe  (0) 2020.05.20