Bugku Web CTF-文件包含2

Bugku Web CTF-文件包含2

打开是一个页面,题目提示是文件包含,url的格式也很典型:

http://123.206.31.85:49166/index.php?file=hello.php

尝试最简单的思路http://123.206.31.85:49166/index.php?file=../../../../../../../../../etc/pass,然后页面显示大字NAIVE!!!!
直接右键查看网页源码,发现注释upload.php,打开该页面发现是一个文件上传功能,并且对上传的文件后缀有要求,此处直接修改文件后缀为.jpg即可成功,或者将文件后缀修改为.php;.jpg也可。
此时学习了一下一句话木马比如:

eval($_POST['cmd']);>

而且比较奇怪的是当我写作:形式时会出现错误,又试了几个只要有就会有相同的问题,本半瓶子水不知道是什么原因或者是什么限制造成的。
虽然成功上传,但发现传入的命令并没有显示出什么结果,页面一直显示为空白,搜别人的wp也没人解释什么原因,都清一色的使用这句代码:


试了一下发现确实能成功,会输出当前目录下的文件,其中就有flag文件(但是为什么这个可以成功…):

about hello.php index.php this_is_th3_F14g_154f65sd4g35f4d6f43.txt upload upload.php

直接在url中访问该文件即可。

SKCTF{uP104D_1nclud3_426fh8_is_Fun}

好奇也访问了一下upload.php的文件内容,发现只有最后几句话的代码:

/i', '_', $content); 
file_put_contents('upload/'.$filename, $content); 
echo "file upload successful!Save in: " . "upload/" . $filename; 
}
else{ 
	echo "upload failed!"; 
	} 
} 
else { 
	echo "upload failed! allow only jpg,png,gif,jpep"; 
	} 
} ?>

所以最后还是不清楚为什么所谓的一句话木马不可以但是直接构造命令执行可以…

你可能感兴趣的:(web,ctf)