Bace
picoCTF 2018 - absolutely relative 본문
주어진 소스를 봐봤다.
#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 |