apache能够解析的后缀php5,Apache多后缀解析漏洞

造成原因

Apache HTTPD 支持一个文件拥有多个后缀,并为不同后缀执行不同的指令。

如果Apache配置文件(Apache\conf\httpd.conf)中存在以下代码:

AddHandler application/x-httpd-php .php

那么,当文件的后缀中存在 .php时该文件就会被解析为php文件。例如,photo.php.jpg就会被解析为php文件。

从而,我们可以利用apache的此特性绕过白名单检测机制,从而getshell。

环境搭建

环境我们通过vulhub直接搭建就OK了。

apache能够解析的后缀php5,Apache多后缀解析漏洞_第1张图片

这里要求我们上传一个文件

我选择上传一个phpinfo文件,利用burp抓包分析

apache能够解析的后缀php5,Apache多后缀解析漏洞_第2张图片

上传不成功,提示原因为不支持此后缀文件的上传。

现在我们将此文件的后缀进行修改,改为 .php.jpg,再次上传

apache能够解析的后缀php5,Apache多后缀解析漏洞_第3张图片

发现上传成功。

那我们为什么要这样上传呢?这里就牵扯到了另外一个知识点,apache的解析顺序

Apache 是从右到左开始判断解析,如果为不可识别解析,就再往左判断。

所以刚才上传的文件,apache从右开始解析,第一个解析的是jpg,这正是服务器允许上传的文件类型,所以就成功上传。

接下来,我们去访问这个phpinfo.php.jpg

apache能够解析的后缀php5,Apache多后缀解析漏洞_第4张图片

发现成功解析,证实了Apache的多后缀解析漏洞。

那我们该怎么杜绝这种漏洞呢?

1、上传后的文件要重新命名。

2、禁止apache配置文件中出现错误的配置。另外添加以下代码:

Order Deny,Allow

Deny from all

禁止*.php.*文件的访问权限。

你可能感兴趣的:(apache能够解析的后缀php5,Apache多后缀解析漏洞)