Apache Tomcat CVE-2025-24813漏洞检测工具

项目标题与描述

Apache Tomcat CVE-2025-24813 PoC检测工具

本项目是一个专门用于检测Apache Tomcat服务器CVE-2025-24813漏洞的概念验证(PoC)工具。该工具通过非侵入式的方式,对目标Tomcat服务器进行安全检查,包括版本识别、HTTP PUT权限测试和会话信息收集,所有操作均记录到详细的日志报告中。

功能特性

  • CSV批量处理:支持从CSV文件批量读取目标主机(需要包含"Hostname"和"IP address"两列)
  • 非侵入式检测:执行安全检测而不对目标系统造成破坏
  • 三重安全检查 :
    1. 从HTTP "Server"头中提取Tomcat版本信息
    2. 测试DefaultServlet的写权限(上传测试文件后立即删除)
    3. 获取目标服务器的会话ID
  • 完整日志记录:所有操作都带有时间戳和严重级别记录到控制台和报告文件
  • SSL支持:可处理HTTPS连接(默认禁用SSL警告用于测试)

安装指南

系统要求

  • Python 3.x
  • 网络连接权限
  • 对目标服务器的网络访问权限

依赖安装

bash 复制代码
pip install requests

安装步骤

  1. 克隆或下载项目文件到本地
  2. 确保Python环境已安装
  3. 安装所需的requests库
  4. 准备包含目标信息的CSV文件

使用说明

基础使用

  1. 准备CSV文件(如targets.csv),格式如下:
csv 复制代码
Hostname,IP address
TestServer,192.168.56.101
AnotherServer,192.168.56.102
  1. 运行检测脚本:
bash 复制代码
python3 cve_2025_24813_poc.py --csv targets.csv

输出说明

  • 控制台实时显示检测进度和结果
  • 在当前工作目录生成CVE_2025_24813_report.txt报告文件
  • 报告包含时间戳、检测目标和详细结果

核心代码

1. 报告初始化模块

python 复制代码
def init_report():
    """Initializes the report file in the current working directory."""
    global REPORT_FILE
    REPORT_FILE = os.path.join(os.getcwd(), "CVE_2025_24813_report.txt")
    try:
        with open(REPORT_FILE, 'w') as f:
            f.write("CVE-2025-24813 PoC Check Report\n")
            f.write(f"Start Time: {datetime.now()}\n")
            f.write("=" * 60 + "\n")
        log_message("INFO", "Report initialized.")
    except Exception as e:
        log_message("ERROR", f"Failed to initialize report file '{REPORT_FILE}': {e}")

2. 日志记录模块

python 复制代码
def log_message(level, message):
    """
    Logs a message with a timestamp and severity to the report file and prints it to the console.
    """
    timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    formatted = f"{timestamp} - {level} - {message}"
    print(f"{level}: {message}")
    try:
        with open(REPORT_FILE, 'a') as f:
            f.write(formatted + "\n")
    except Exception as e:
        pass

3. 主脚本结构

python 复制代码
#!/usr/bin/env python3
"""
PoC for CVE-2025-24813 (HTTP-based Checks Only) with CSV Input and Incremental Reporting

This script accepts a CSV file (with columns "Hostname" and "IP address") from the current working directory.
For each target, it performs the following non-intrusive checks:
  1. Extracts the Tomcat version from the HTTP "Server" header.
  2. Attempts an HTTP PUT on "CVE-2025-24813-check.txt" (with content "ThreatOPS was here --> MichaelFry@livenation.com")
     to determine if the DefaultServlet is write-enabled, then deletes the file.
  3. Retrieves a session ID from the target.
All actions are logged (with timestamps and severity levels) to the console and a report file in the CWD.
"""

4. 安全配置

python 复制代码
import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning

# Disable SSL warnings for testing purposes
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

该代码设计为模块化结构,核心功能包括报告生成、日志记录和HTTP请求处理,确保检测过程的安全性和可追溯性。 6HFtX5dABrKlqXeO5PUv/xT3pvZhDSsm+vWSaxtXdTeO7ytUMNgVPToBhhL/tOZRxYBBwPndIbnaQlVbqmBmGQ==

相关推荐
zhippt_10145 分钟前
只剩截图没有源文件?图转PPT把图片还原成可编辑幻灯片
前端·人工智能·powerpoint
hqk9 分钟前
AI Agent 学习总结:从模型到 Harness
langchain·aigc
小oo呆11 分钟前
【自然语言处理与大模型】自然语言处理的漫漫长路之深度学习时代
人工智能·深度学习·自然语言处理
JavaPub-rodert17 分钟前
AI Agent 的记忆系统怎么设计?从短期记忆、长期记忆到 RAG,讲透 Memory 工程化
人工智能
智恒百亿18 分钟前
一台 5090 八卡服务器怎么分给一个团队用?多模型多任务的显存分配实战
java·大数据·人工智能
MCT12365421 分钟前
AI VRM 高频设计|功率电感磁材选型与电源损耗、效率关系
人工智能·dc-dc电源·功率电感·一体成型电感
汤姆宝库23 分钟前
安全深拆:越狱、Sleeper与可解释性
人工智能
skywalk816327 分钟前
lightmem记忆系统实战存取.小浣熊一句话:从lightmem记忆中,取出FreeBSD linux仿真环境安装启动workbuddy的信息,整理成文档
人工智能·硬件架构·记忆·lightmem
Solange__27 分钟前
在线3D预览器、Blender和游戏引擎怎么选?按5类任务比较格式、隐私与编辑性
人工智能·游戏·3d·游戏引擎·blender·1024程序员节·关卡设计