Apache HTTPD 多后缀名解析漏洞复现

什么是多后缀名解析漏洞加粗样式:
多后缀名解析漏洞(Multiple Extension Handling Vulnerability)指的是一种安全漏洞,发生在某些操作系统或网络服务中的文件扩展名处理机制中。

这种漏洞的本质是当文件具有多个后缀名(例如file.txt.php)时,系统或服务可能会错误地解析文件的类型和处理方式。攻击者可以利用这个漏洞来绕过安全检查,欺骗系统或服务执行不应该执行的操作。

漏洞环境

说明:

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

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

AddType text/html .html
AddLanguage zh-CN .cn

​ 其给.html后缀增加了media-type,值为text/html;给.cn后缀增加了语言,值为zh-CN。此时,如果用户请求文件index.cn.html,他将返回一个中文的html页面。

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

AddHandler application/x-httpd-php .php

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

漏洞环境

运行如下命令启动一个稳定版Apache,并附带PHP 7.3环境:

sudo docker-compose up -d

image-20230907175823886

查看使用的端口:

sudo docker ps -a

image-20230907180037377

访问80端口,页面:

image-20230907180114403

漏洞复现

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

image-20230907192238999

http://your-ip/index.php中是一个白名单检查文件后缀的上传组件,上传完成后并未重命名。我们可以通过上传文件名为xxx.php.jpgxxx.php.jpeg的文件,利用Apache解析漏洞进行getshell。

我们上传一个php木马文件试一下:

image-20230907192646051

我们把文件类型改为info.php.png ,然后上传:

image-20230907193048624

显示文件上传成功。

访问一下文件:

image-20230907193245272

发现php代码执行了。

为什么php代码会执行呢,其实是因为由安全配置引起的。

cat docker-compose.yml

image-20230907193605156

volumes表示卷,卷和磁盘有关,它会把./www 目录映射到/var/www/html 目录,下面的也是如此,就是把左边是物理机中的文件和右边是docker容器中的文件做了映射。所以我们要看配置文件话,直接看映射的文件就可以,配置文件在conf目录下:

cat conf/docker-php.conf

image-20230907194807905

其中AddHandler application/x-httpd-php .php 就是不安全的配置。如果运维人员给.php后缀的文件添加了处理程序 AddHandler application/x-httpd-php .php 那么在有多个后缀的情况下,只要文件含有.php后缀那么该文件就会被识别为PHP文件进行解析。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/129207.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MT4移动端应用指南:随时随地进行交易

如今,随着科技的不断发展,我们可以随时随地通过手机进行各种操作,包括进行金融交易。本文将为大家介绍一款优秀的金融交易软件——MT4(可在mtw.so/6gwPno这点下)移动端应用,并提供详细的使用指南&#xff0…

合宙Air724UG LuatOS-Air LVGL API控件-加载器(Spinner)

加载器(Spinner) 示例代码 spinner lvgl.spinner_create(lvgl.scr_act(), nil) lvgl.obj_set_size(spinner, 100, 100) lvgl.obj_align(spinner, nil, lvgl.ALIGN_CENTER, 0, 0) 创建 通过 lvgl.spinner_create 就可创建一个加载器,本身自带动画效果。 spinner …

同步FIFO的verilog实现(2)——高位扩展法

一、前言 在之前的文章中,我们介绍了同步FIFO的verilog的一种实现方法:计数法。其核心在于:在同步FIFO中,我们可以很容易的使用计数来判断FIFO中还剩下多少可读的数据,从而可以判断空、满。 关于计数法实现同步FIFO的详…

【数据库】MySQL基础知识全解

系列综述: 💞目的:本系列是个人整理为了秋招面试的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:材料主要源于拓跋阿秀、小林coding等大佬博客进行的,每个知识点的修…

企业架构LNMP学习笔记30

1、upstream 中server的关键字:语法: upstream中的分发之后的几个关键字: 1)backup 备 其他的没有backup标识的都不可用了,才分发到backup; 2)down 此条配置,不会被分发到。 syst…

OmniGraffle Pro for Mac 中文正式版(附注册码) 苹果电脑 思维导图软件

OmniGraffle Pro是OmniGraffle的高级版本,它提供了更多的功能和工具,可以帮助用户创建更为复杂和高级的图表和流程图。OmniGraffle Pro支持自定义形状、图形、线条和箭头等,可以让用户创建出更加精细的图表。此外,OmniGraffle Pro…

字符编码(idea)

File----------settings-------------Editor------------File Encodings

详细解析如何用“双指针“解题(面试必备,小白一看就会系类)

一、前言 大家在平时的训练和交流中肯定多少都会听过或者见过用"双指针"去快速的解题,那么大家有没有想过,为什么要用"双指针"呢?这里的"双指针"和我们平时了解的指针一样吗? 其实,这里…

永辉上半年净利润扭亏为盈,是“科技重启”的功劳吗?

你有多久没逛超市了?你记忆中的超市是怎样的?现在逛超市的原因又是什么? 其实,对于很多年轻人来说,现在的“快递点”就是“新时代超市”。而传统“超市”“大卖场”被新型超市、电商抢走不少人流量后,逐渐…

个人主页网站动态星空背景源码(带后台版本)

动态星空背景个人主页网站源码是一种用于创建个人主页的开源项目。它具有一个令人印象深刻的动态星空背景,为用户提供了一个独特而吸引人的网页设计。此源码还包含一个后台版本,使用户能够轻松管理和更新他们的个人主页内容。 通过该源码,用…

亿发软件:智慧门店商超系统,2023新零售POS数字运营一体化管理

2023年9月6日,山东济宁一家超市因为酸奶价格标签错误而引发了广泛关注。标签原本显示几十个人为9.9元,但特价销售价却标为10元。这一小小的错误却在社交媒体上引发了轩然大波,让超市一度处于舆论的风口浪尖。超市工作人员回应,表示…

华为云云耀云服务器L实例评测 | 华为云云耀云服务器L实例使用教学

文章目录 前言一、登录华为云二、创建云服务器L实例三、登录云服务器L实例四、使用云服务器L实例后记 前言 华为云是中国领先的云计算服务提供商之一,旗下的云耀云服务器是一种高性能、高可靠性、灵活可扩展的云服务器。 下面,我将为大家介绍华为云云耀云…

【算法】希尔 (Shell) 排序 详解

希尔排序 详解 希尔排序代码实现 排序: 排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性: 假定在待排序的记录序列中,存在多个具有相同的关键字的记录&#x…

MySQL学习问题记录

文章目录 MySQL学习问题记录1、查询记录自动根据id排序? MySQL学习问题记录 1、查询记录自动根据id排序? step1:建表 表项信息: 写入数据顺序id为10 2 7 1。查寻时返回记录顺序为1 2 7 10? 更新一条数据后仍然按照…

【AIGC专题】Stable Diffusion 从入门到企业级实战0403

一、前言 本章是《Stable Diffusion 从入门到企业级实战》系列的第四部分能力进阶篇《Stable Diffusion ControlNet v1.1 图像精准控制》第03节, 利用Stable Diffusion ControlNet Canny模型精准控制图像生成。本部分内容,位于整个Stable Diffusion生态…

PyTorch深度学习实战(15)——迁移学习

PyTorch深度学习实战(15)——迁移学习 0. 前言1. 迁移学习1.1 迁移学习基本概念1.2 迁移学习的重要性1.3 ImageNet1.4 迁移学习流程 2. VGG16 架构3. 使用预训练 VGG16 模型实现猫狗分类小结系列链接 0. 前言 迁移学习( Transfer Learning )是一种利用从…

时序预测 | MATLAB实现ICEEMDAN-iMPA-BiLSTM时间序列预测

时序预测 | MATLAB实现ICEEMDAN-iMPA-BiLSTM时间序列预测 目录 时序预测 | MATLAB实现ICEEMDAN-iMPA-BiLSTM时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 ICEEMDAN-iMPA-BiLSTM功率/风速预测 基于改进的自适应经验模态分解改进海洋捕食者算法双向长短期记忆…

C语言深入理解指针(非常详细)(五)

目录 回调函数qsort使用举例qsort函数的模拟实现sizeof和strlen的对比sizeofstrlensizeof和strlen的对比一道关于sizeof的题 回调函数 回调函数就是一个通过函数指针调用的函数 如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指…

Python小知识 - Python装饰器

Python装饰器 在Python中,装饰器是一个特殊的函数,可以将其他函数包装在装饰器函数中,并且将被包装的函数作为参数传递给装饰器函数。 使用装饰器的好处是可以自动在被包装的函数前后执行一些额外的代码,比如在函数执行前后打印日…

ClickHouse的Join算法

ClickHouse的Join算法 ClickHouse是一款开源的列式分析型数据库(OLAP),专为需要超低延迟分析查询大量数据的场景而生。为了实现分析应用可能达到的最佳性能,分析型数据库(OLAP)通常将表组合在一起形成一个…