0x0E cmd1
題目描述
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=/fuckyouverymuch");
if(filter(argv[1])) return 0;
system( argv[1] );
return 0;
}
題目分析
首先分析代碼,這道題是讓你輸入程序參數(shù),并放到system執(zhí)行,然后這里有個filter函數(shù),過濾了flag、sh、tmp三個關(guān)鍵字,如果我們想要得到flag,就不能輸入flag,想了一下,發(fā)現(xiàn)通配符沒有過濾,然后又想到cat命令在本機bin目錄下存在,因此就可以用/bin/cat f*讀取flag
解題步驟
./cmd1 "/bin/cat f*"
