首先,我们还是先上传一个php文件看看什么情况

这里很明显是黑名单过滤文件后缀,过滤了.php,我们可以上传除这四类文件后缀的其他文件,这里可以考虑.php3,.php5,.phtml
这里需要介绍一下,特定文件类型交由什么解释器是由服务器决定的,就比如这句话
AddType application/x-httpd-php .php就是将以php后缀的文件交由PHP解析器去解析,这一关我们可以修改服务器的httpd配置来实现其他后缀文件也可以交由PHP解析器执行。

打开httpd-conf文件,添加以下语句,这样pthml,php3,php5后缀的文件也可以被当作PHP语言来解析
AddType application/x-httpd-php .php .phtml .php5 .php3

修改完后我们重启一下Apache服务,然后开始上传文件
这里可以直接把文件后缀修改为上述类型,或者在BurpSuite抓包改名也可以,我就直接修改了

上传以.php5为后缀的文件,提示我们上传成功
这里我们直接去上传文件的路径去查看我们的文件名,接着访问,可以看到 成功访问了
我们上传的文件都是保存在..../upload-labs/upload路径下


解题点:黑名单验证过滤php,我们可以尝试上传php3,php5,pthml文件等文件绕过
问题:这里如果使用的是v8.1版本的phpstudy的话,会发现即使修改了配置文件,还是访问不了我们上传的文件,在查阅了不少资料后发现,这是PHP版本与Apache版本不兼容,这里的版本指的是NTS(non thread safe非线程安全)和TS(thread safe线程安全)两个版本,8.1版本的phpstudy可以看到都是nts版本,但是nts版本的php不支持Apache的某些模块,导致我们即使修改了也无用,我们需要切换到ts版本的php
解决方案:在参考了许多大佬的解决方案后,我认为使用2018版本的phpstudy会更方便点,它配置了有ns版本的php,可以直接使用,还有的方案是安装TS版本的PHP,并在Apache中配置好相关设置,这个方案会稍微麻烦点,可以参考关于PHPStudy中使用AddType application/x-httpd-php该Apache的设置命令无效的问题 - Article_kelp - 博客园
这个为2018版本phpstudy官网下载包:http://public.xp.cn/upgrades/PhpStudy2018.zip
1055

被折叠的 条评论
为什么被折叠?



