upload-labs Pass-04
在进行测试前,先了解一下.htaccess
文件
- .htaccess文件
.htaccess是Apache网络服务器一个配置文件,当.htaccess文件被放置在一个通过Apache Web服务器加载的目录中,.htaccess文件会被Apache Web服务器软件检测并执行,通过.hatccess文件,可以改变Apache服务器软件的功能和特性。在这之前先了解apache中的httpd.conf文件,这是apache的配置文件,由于网站的发展来看大多数网站都是通过协同来进行的,个人很难通过修改httpd.conf来修改apache的配置特性,所以引出了.htaccess文件的概念,它有着和httpd.conf文件相同的作用。
.htaccess文件提供了针对目录的配置变换方法,这样有利于不同目录用不同的配置,即在一个特定的文档中放置一个htaccess文件以作用此目录及其所有子目录,并且可以被子目录覆盖。作为网站管理员可以限制htaccess文件的使用,方法就是将Apache中的AllowOverride设置为All,以及mod_rewrite.so(在httpd.conf文件中)
据此,我们可以
新建一个文件.htaccess文件
<FilesMatch "test.jpg">
SetHandler application/x-httpd-php
</FilesMatch>
这个文件内容的意思是告诉apache当遇到test.jpg文件时,按照php去解析。
此时服务端会优先根据我们的.htaccess文件执行
然后设置好我们上传的php文件
<?php
phpinfo();
?>
命名为test.php并修改后缀jpg,并进行上传
上传成功后进行访问,apache会将jpg解析为php来执行
注意:此关我在复现时候最后访问总是提示图片错误
然后我更换了小皮面板,我使用小皮面板8.1.1.3的时候无法复现,在此环境我的php版本为5.3.29,apache版本为2.4.39,MySQL版本为5.7.26,在此环境下我无法复现。
然后我更换小皮面板为2018版小皮,php5.4.45,Apache/2.4.23 (Win32),MySQL5.5.53,在此环境下我复现成功
由此上传成功