Apache漏洞利用与安全加固实例分析

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: Apache 作为Web应用的载体,一旦出现安全问题,那么运行在其上的Web应用的安全也无法得到保障,所以,研究Apache的漏洞与安全性非常有意义。本文将结合实例来谈谈针对Apache的漏洞利用和安全加固措施。

Apache 作为Web应用的载体,一旦出现安全问题,那么运行在其上的Web应用的安全也无法得到保障,所以,研究Apache的漏洞与安全性非常有意义。本文将结合实例来谈谈针对Apache的漏洞利用和安全加固措施。

Apache HTTP Server(以下简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,是最流行的Web服务器软件之一。虽然近年来Nginx和Lighttpd等Web Server的市场份额增长得很快,但Apache仍然是这个领域中独一无二的巨头,互联网上大多数的Web应用依然运行在Apache上。

Apache文件名解析特性

Apache对于文件名的解析是从后往前解析的,直到遇见一个它认识的文件类型为止。因此,如果web目录下存在以类似webshell.php.test这样格式命名的文件,Apache在解析时因为不认识.test这个文件类型,所以会一直往前解析,当解析到.php时,它认识了,因此会将它解析为PHP文件。

Apache的这种解析特性经常被用来绕过Web应用的文件上传检测。当Web应用的文件上传功能在检测上传文件的合法性时,如果仅通过检测上传文件的扩展名来判断文件是否合法,就可以利用Apache的这种文件名解析特征绕过Web应用的检测。

下面来看一个实例:目标网站后台存在一个上传图片的功能,只允许上传JPG和GIF图片格式的文件。但程序在验证上传文件合法性处存在漏洞,只是简单地通过上传文件扩展名来确定文件是否合法,这时我们就可以利用Apache的文件名解析特征来绕过这种检测。
将文件名修改为类似phpshell.php.jpg这样的格式上传,发现绕过了检测,文件被成功上传到目标网站,如图

 

 

可以在httpd.conf配置文件中添加以下内容来阻止Apache解析这种文件。

 

Order Allow,Deny

Deny from all

 

修改后需要重启Apache服务生效。

这样即使攻击者上传了类似phpshell.php.jpg这样格式的文件,Apache也不会将它解析为PHP文件了,如图

 

 

安全加固

Apache的安全加固我们主要从以下两点考虑:一是Apache Web Server本身是否安全,比如是否存在安全漏洞;二是Apache Web Server是否提供了可使用的安全功能,这部分主要是检查Apache的配置是否得当,在安全性、可用性、稳定性之间取得平衡。

Apache版本的选择与安装注意事项

检查目前使用的Apache版本是否存在安全漏洞,如果存在,需要升级到新的安全版本。在选择Apache的版本时,我们一般选择最新的稳定版本。这样可以在安全性和稳定性之间取得一个很好的平衡。从低版本升级到高版本时,建议先在测试环境中测试通过后再进行升级,以避免由于兼容性带来的问题。

在安装时使用自定义的安装路径,并配置使用自定义的WEB目录。

Apache安全配置

1. Apache降权

这个工作只针对运行在Windows平台上的Apache,因为在Windows环境下,Apache默认以System权限运行,这样的后果是一旦成功入侵WEB应用,将直接得到一个高权限的Webshell,如图

 

 

现在我们来对Apache进行降权操作。首先新建一个用户,设置复杂的密码,并且让它不属于任何用户组,如图

 

 

接着打开“本地安全策略”--->“本地策略”--->“用户权限分配”,找到“作为服务登录”项,把刚刚新建的用户添加进去,如图

 

 

然后打开“服务”组件,找到Apache 的服务,右键“属性”--->“登录”,用刚新建的apache 账户运行Apache 服务,如图

 

 

再找到Apache 日志目录,为apache 账户分配“读取”和“写入”权限,否则Apache 服务不能启动,如图

 

 

 

配置好后,重启Apache 服务生效,现在Apache 服务就已apache 低权限账户运行了,如图

 

 

Linux环境下不必关心这个问题,Apache主进程以root 权限启动,子进程默认是以apache、daemon或其他用户身份运行的,这是一个低权限用户。

2. 只加载必要的Module(模块)

Apache有很多官方与非官方的Module,很多漏洞都是由于Apache的Module造成的。所以我们需要检查Apache的Module安装情况,根据“最小权限原则”,应该尽可能地减少不必要的Module,对于要使用的Module,则检查其对应版本是否存在已知的安全漏洞。可以在httpd.conf中配置需要加载或禁用的Module。

3. Apache日志安全设置

不论在那种服务器上,日志都是一个非常重要的部分,我们需要对它严加保护。在Apache上也是如此。首先要修改日志的默认保存路径,然后设置只允许管理员有日志保存目录的完全控制权限,如图

 

 

 

4. 网站目录权限配置

原则:目录有写入权限,一定不要分配执行权限;目录有执行权限,一定不要分配写入权限。

网站上传目录和数据库目录一般需要分配“写入”权限,但一定不要分配执行权限。其他目录一般只分配“读取”和“记录访问”权限即可。

 

5. 关闭Apache的目录浏览功能

如果Apache采用默认配置,当WEB目录下不存在默认索引页面(如index.html)时,会将当前目录下的所有文件和目录都列出来,这是十分危险的,如图

 

 

可以通过以下两种方法来关闭目录浏览功能:

a.打开httpd.conf配置文件,查找“Options Indexes FollowSymLinks”,修改为“Options -Indexes”,然后保存并重启Apache服务生效

b.修改.htaccess文件——在.htaccess文件里加入“Options -Indexes”(没有双引号)就可以阻止目录列表的显示了。

这样以后再访问不存在默认索引页面的目录时,Apache将会返回403错误页面,如图

 

 

6. 修改Apache默认banner信息

Apache的banner会泄露服务器的操作系统和Apache版本等相关信息,如图16和图17,而这些信息对攻击者是非常有用的,我们需要修改默认配置来阻止这些信息的泄露。

 

 

打开httpd.conf配置文件,找到ServerTokens和ServerSignature,将它们的值分别修改为Prod和Off,修改后的效果如上图和下图

 

 

总结

通过上面对Apache漏洞和安全加固的实例分析,相信读者对Apache HTTP Server的漏洞和安全加固都有了更加深入的认识。其实Apache的安全加固并不难,很多时候更重要的是管理员的安全意识,只要有足够的安全意识,加上上面介绍的安全加固方法,相信你一定可以打造一个安全的Apache HTTP Server。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
6月前
|
存储 Apache
Apache Hudi Savepoint实现分析
Apache Hudi Savepoint实现分析
113 0
|
20天前
|
消息中间件 安全 Kafka
Apache Kafka安全加固指南:保护你的消息传递系统
【10月更文挑战第24天】在现代企业环境中,数据的安全性和隐私保护至关重要。Apache Kafka作为一款广泛使用的分布式流处理平台,其安全性直接影响着业务的稳定性和用户数据的安全。作为一名资深的Kafka使用者,我深知加强Kafka安全性的重要性。本文将从个人角度出发,分享我在实践中积累的经验,帮助读者了解如何有效地保护Kafka消息传递系统的安全性。
46 7
|
3月前
|
消息中间件 监控 数据挖掘
基于RabbitMQ与Apache Flink构建实时分析系统
【8月更文第28天】本文将介绍如何利用RabbitMQ作为数据源,结合Apache Flink进行实时数据分析。我们将构建一个简单的实时分析系统,该系统能够接收来自不同来源的数据,对数据进行实时处理,并将结果输出到另一个队列或存储系统中。
223 2
|
14天前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
15天前
|
监控 Cloud Native BI
8+ 典型分析场景,25+ 标杆案例,Apache Doris 和 SelectDB 精选案例集(2024版)电子版上线
飞轮科技正式推出 Apache Doris 和 SelectDB 精选案例集 ——《走向现代化的数据仓库(2024 版)》,汇聚了来自各行各业的成功案例与实践经验。该书以行业为划分标准,辅以使用场景标签,旨在为读者提供一个高度整合、全面涵盖、分类清晰且易于查阅的学习资源库。
|
2月前
|
存储 JSON 物联网
查询性能提升 10 倍、存储空间节省 65%,Apache Doris 半结构化数据分析方案及典型场景
本文我们将聚焦企业最普遍使用的 JSON 数据,分别介绍业界传统方案以及 Apache Doris 半结构化数据存储分析的三种方案,并通过图表直观展示这些方案的优势与不足。同时,结合具体应用场景,分享不同需求场景下的使用方式,帮助用户快速选择最合适的 JSON 数据存储及分析方案。
查询性能提升 10 倍、存储空间节省 65%,Apache Doris 半结构化数据分析方案及典型场景
|
1月前
|
消息中间件 druid 大数据
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(二)
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(二)
32 2
|
6月前
|
Apache
Apache Hudi Rollback实现分析
Apache Hudi Rollback实现分析
93 0
|
1月前
|
消息中间件 分布式计算 druid
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(一)
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(一)
53 1
|
1月前
|
消息中间件 druid Kafka
从Apache Flink到Kafka再到Druid的实时数据传输,用于分析/决策
从Apache Flink到Kafka再到Druid的实时数据传输,用于分析/决策
73 0

推荐镜像

更多