본문 바로가기

Write-Up/pwnable.kr

[pwnable.kr] cmd1 풀이

#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=/thankyouverymuch");
	if(filter(argv[1])) return 0;
	system( argv[1] );
	return 0;
}

 

putenv = 환경변수를 PATH=/thankyouvermuch 로 설정

 

filter함수로 들어온 인자가

flag, sh, tmp 일때 !=0 (0이 아닌값)을 리턴한다.

 

if(filter(argv[1])) return 0;

출력값이 0이 아니면 return 0을한다.

 

인자로 flag값을 가져와야 하므로 /bin/cat flag로 가져오면되겠지만

flag가 필터링되니 와일드카드(*)로 이용해서 가져오자

 

 

 

'Write-Up > pwnable.kr' 카테고리의 다른 글

[pwnable.kr] memcpy 풀이  (0) 2021.03.25
[pwnable.kr] cmd2 풀이  (0) 2021.03.24
[pwnable.kr] lotto 풀이  (0) 2021.03.24
[pwnable.kr] blackjack 풀이  (0) 2021.03.24
[pwnable.kr] coin1 풀이  (0) 2021.03.21