Apache HTTPD 多后缀解析漏洞

目录

漏洞简介

漏洞环境

漏洞复现

漏洞防御


漏洞简介

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

复制代码
AddType text/html .html
AddLanguage zh-CN .cn

以上就是Apache多后缀的特性。如果运维人员给.php后缀增加了处理器:

复制代码
AddHandler application/x-httpd-php .php

那么,在有多个后缀的情况下,只要一个文件含有.php后缀的文件即将被识别成PHP文件,没必要是最后一个后缀。利用这个特性,将会造成一个可以绕过上传白名单的解析漏洞。

漏洞环境

vulhub-master\httpd\apache_parsing_vulnerability

Vulhub - Docker-Compose file for vulnerability environment

漏洞复现

进入vulhub项目对应的目录:cd vulhub-master\httpd\apache_parsing_vulnerability

编译容器:"docker-compose build"

启动Docker容器,输入命令:"docker-compose up -d"。

查看容器状态,输入命令:"docker ps"并查看对应容器ID。

进入容器,输入命令:"docker exec -it 容器id /bin/bash"。

构造代码文件命名为aaa.php.jpg

php 复制代码
<?php pnpinfo()?>

上传文件

访问http://your-ip/uploadfiles/aaa.php.jpeg即可发现,phpinfo被执行了,该文件被解析为php脚本。

http://your-ip/index.php中是一个白名单检查文件后缀的上传组件,上传完成后并未重命名。我们可以通过上传文件名为xxx.php.jpgxxx.php.jpeg的文件,利用Apache解析漏洞进行getshell。如果这个文件保存的文件名是基于时间或者其他命令格式的话,把1.php.jpg命名成2022......655.jpg的话,那么这个漏洞就没有用。

漏洞防御

1、使用SetHandler,写好正则

<FileMatch ".+\.php$">

SetHandler application/x-httpd-php

</FileMatch>

2、禁止.php这样的文件执行

<FileMatch ".+\.ph(p[3457]?|t|tml)\.">

Require all denied

</FileMatch>

相关推荐
JoySSLLian4 小时前
手把手教你安装免费SSL证书(附宝塔/Nginx/Apache配置教程)
网络·人工智能·网络协议·tcp/ip·nginx·apache·ssl
Apache Flink5 小时前
Apache Flink Agents 0.2.0 发布公告
大数据·flink·apache
软件派1 天前
Apache SeaTunnel从入门到精通:企业级数据集成全流程解析
apache·seatunnel
倔强的石头1062 天前
边缘侧时序数据的选型指南:网络不稳定、数据不丢、回传可控——用 Apache IoTDB 设计可靠链路
网络·apache·iotdb
A-刘晨阳2 天前
2026年时序数据库选型指南:从大数据视角深度解析Apache IoTDB的技术优势与实践路径
大数据·apache·时序数据库
todoitbo2 天前
时序数据库选型指南:面向工业物联网的工程视角,以 Apache IoTDB 为例
物联网·apache·时序数据库·iotdb
枫叶丹42 天前
时序数据库选型指南:在大数据浪潮中把握未来,为何Apache IoTDB值得关注?
大数据·数据库·apache·时序数据库·iotdb
wei_shuo3 天前
国产时序数据库的云原生实践:Apache IoTDB 与 TimechoDB 在物联网场景的深度应用
云原生·apache·时序数据库
Aloudata3 天前
数据治理选型对比:Apache Atlas vs 商业平台在存储过程解析与自动化治理的实测分析
数据挖掘·自动化·apache·元数据·数据血缘
世界尽头与你3 天前
CVE-2017-5645_ Apache Log4j Server 反序列化命令执行漏洞
网络安全·渗透测试·log4j·apache