利用 HTTP 路径规范化不一致绕过 WAF 鉴权

张开发
2026/4/8 12:49:29 15 分钟阅读

分享文章

利用 HTTP 路径规范化不一致绕过 WAF 鉴权
路径规范化绕过的本质是信息不对称。️ 什么是路径规范化不一致在现代 Web 架构中一个请求通常会经过多个层级反向代理/WAF如 Nginx, Cloudflare -中间件如 Tomcat, WebLogic -应用程序框架如 Spring Boot。规范化Normalization是指将复杂的 URL包含../、//、;等符号转化为标准路径的过程。当WAF和后端服务器对同一个字符串的“理解”出现偏差时攻击者就可以利用这种“不一致”将恶意路径伪装成合法路径从而绕过安全检测。️ 绕过原理与手法1. 矩阵参数与分号截断Tomcat 特性在 Java Servlet 规范中分号;用于携带矩阵参数。WAF 的理解可能将/admin/;..//public/index.html视为一个整体字符串或者认为访问的是/admin/目录下的某个文件。Tomcat 的处理看到;会忽略其后直到下一个/的内容。绕过示例/admin/;..//public/index.html在 Tomcat 中规范化后可能变成/public/index.html反之/public/..;/admin/index.jsp可能会被 WAF 误认为是在访问public目录白名单但后端最终解析为/admin/index.jsp。2. 斜杠处理的差异Slash Inconsistency不同服务器对连续斜杠//或反斜杠\的处理各异。Nginx默认会将多个/压缩为一个/。某些 WAF可能无法识别..//这种穿越方式。Payload/public//../../admin/config3. URL 编码与双重编码这是最基础的差异点。WAF 可能只进行一次解码而某些后端服务器如带有特定配置的 Spring会自动进行多次解码。手法将..编码为%2e%2e或将/编码为%2f。如果 WAF 没识别出编码后的路径穿越符号请求就会带着编码进入后端被解析。4. 非标准路径解析特定中间件漏洞WebLogic (CVE-2020-14882):利用%252e%252e%252f双重编码的../绕过控制台鉴权。Nginx PHP-FPM:历史上曾出现过利用.php/test.php这种路径后缀解析差异导致的执行漏洞。 发现与探测流程要在实战中发现这些漏洞可以采用差异化响应分析确定拦截基准尝试直接访问/admin确认返回403或401。寻找白名单前缀找到无需授权的目录如/static/,/public/。注入干扰符在白名单路径后加入..;、..%2f、//..//等。对比状态码如果返回404说明请求穿透了 WAF 达到了后端后端找不到该构造路径。此时通过调整../的数量尝试回溯到敏感接口。

更多文章