오늘도 1점 문제

    cmd1.c 파일 내용은 아래와 같다. argv[1]에 flag나 sh나 tmp가 들어가면 안되는 듯.

    #include <stdio.h>
    #include <string.h>
    
    int filter(char* cmd){
            int r=0;
            r += strstr(cmd, "flag")!=0;
            r += strstr(cmd, "sh")!=0;
            r += strstr(cmd, "tmp")!=0;
            return r;
    }
    int main(int argc, char* argv[], char** envp){
            putenv("PATH=/fuckyouverymuch");
            if(filter(argv[1])) return 0;
            system( argv[1] );
            return 0;
    }
    

    export 명령어로 환경변수를 하나 지정해서 넣어주면 된다. 난 처음에 환경변수를 생각 못해서 좀 괴상하게 풀었다.

    tmp를 못쓰면 tmp에서 하면 되지!! 해서 이렇게

    mommy now I get what PATH environment is for :)

    환경변수 출력을 어떻게 해야하는지 까먹었는데 이번 기회에 다시 알게되서 참 좋다. 1점 문제만 있으면 좋겠다.

    Posted by 코요

티스토리 툴바