中间件安全—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…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
6月5日,2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席,并作《智能体在安全领域的应用实践》主题演讲,分享了在智能体在安全领域的突破性实践。他指出,百度通过将安全能力…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
