Apache Httpd 多后缀解析

目录

1.原因

2.环境

3.复现

4.防御


1.Apache Httpd 多后缀解析原因

Apache HTTP Server 在处理文件请求时,通常会根据文件的后缀来确定如何处理该文件。例如,.php文件会被交给 PHP 解释器处理,而.html文件则直接作为静态文件返回。

然而,在某些配置下,如果文件名包含多个后缀(例如 file.php.jpg),Apache 可能会错误地将其解析为 PHP 文件并执行其中的代码,即使文件的后缀是 .jpg。这种行为可能会导致攻击者上传恶意文件并执行任意代码。

如果运维人员给.php后缀增加了处理器:

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

那么,只要一个文件含有.php后缀的文件即将被识别成PHP文件,没必要是最后一个后缀。

该漏洞的根本原因在于 Apache 的 mod_mime 模块在处理多后缀文件名时的行为。默认情况下,Apache 会从右到左解析文件名的后缀。例如,对于 file.php.jpg,Apache 会首先识别 .jpg,然后识别 .php。如果配置不当,Apache 可能会将文件视为 PHP 文件并执行其中的代码。

2.环境搭建

复制代码
https://github.com/vulhub/vulhub下载压缩包

ubuntu下解压

安装容器:docker docker-compose

漏洞目录:~/vulhub-master/httpd/apache_parsing_vulnerability

docker-compose up -d 拉取漏洞环境,自动部署

docker ps -a 查看docker状态

然后直接在物理机访问虚拟机的ip

3.Apache Httpd 多后缀解析复现

先上传一个web.php.jpg文件,写入<?php pnpinfo()?>

然后burpsuit抓包,发送

然后访问

复制代码
http://虚拟机ip/uploadfiles/web.php.jpg

发现成功解析

4.Apache Httpd 多后缀解析防御

#限制 PHP 文件的解析

<FilesMatch \.php$>

SetHandler application/x-httpd-php

</FilesMatch>

禁止多后缀文件的解析

<FilesMatch \.(php\.|php0-9?\.|phtml\.|phps\.|php\d\.).+$>

Order Allow,Deny

Deny from all

</FilesMatch>

相关推荐
梦到啥说啥5 小时前
Linux网络编程:TCP网络协议
网络·网络协议·tcp/ip
Shanks.8 小时前
2026 远程控制软件实测:ToDesk / 向日葵 / RustDesk / TeamViewer 在跨城与弱网下的真实差距
网络·远程工作·软件需求
Jeremy_WW9 小时前
802.3协议解读 06:117章节 RS 和 200GMII / 400GMII I
网络·网络协议·信息与通信·光模块·802.3协议
坤坤子吖10 小时前
Linux网络编程:自定义应用层协议与 JSON 序列化
linux·服务器·网络·c++·笔记·json
顧棟10 小时前
INFINI Gateway 服务器端口重用(SO_REUSEPORT)实现与分析
网络·gateway
沫璃染墨11 小时前
从零入门计算机网络系列(十八):TCP连接管理详解——从三次握手与四次挥手到TIME_WAIT机制
运维·服务器·网络·c++·网络协议·tcp/ip·tcp
LabVIEW开发11 小时前
Omron PLC:接 LabVIEW 常踩的 5 个坑
服务器·网络·labview·labview知识·labview功能·labview程序
南京码讯光电技术有限公司12 小时前
工业5G/4G路由器怎么选?核心参数解析与工业级网关选购指南
网络·智能路由器
爱和冰阔落12 小时前
【Linux网络】JsonCpp 怎么实现序列化?从 Request/Response 到网络计算器消息设计
linux·运维·网络·php
feng_you_ying_li1 天前
linux之数据链路层
linux·网络·智能路由器