#include <stdio.h>
#include <string.h>
int filter(char* cmd){
int r=0;
r += strstr(cmd, "flag")!=0; //flag, sh, tmp문자열 필터링
r += strstr(cmd, "sh")!=0;
r += strstr(cmd, "tmp")!=0;
return r;
}
int main(int argc, char* argv[], char** envp){
putenv("PATH=/fuckyouverymuch"); //path환경변수 초기화
if(filter(argv[1])) return 0;
system( argv[1] );
return 0;
}
필터링 우회하는데는 정규식만한게 없는것 같다.
argv에 export를 넣어줘서 path를 다시 넣어주는 방법도 있다.
'war game > pwnable.kr' 카테고리의 다른 글
pwnable.kr uaf 8pt (0) | 2016.10.12 |
---|---|
pwnable.kr cmd2 9pt (0) | 2016.10.12 |
pwnable.kr lotto 2pt (0) | 2016.10.11 |
pwnable.kr blackjack 1pt (0) | 2016.10.11 |
pwnable.kr coin1 6pt (0) | 2016.10.11 |