
网络安全研究人员(Ethiack 团队主导)在自主渗透测试中,发现一种 **“HTTP 参数污染 + JavaScript 注入” 的组合技术 **—— 利用 Web 应用框架(如
ASP.NET)与 WAF 的参数解析差异,绕过传统 WAF 防护,成功执行跨站脚本(XSS)恶意代码。
该技术主要针对受高度限制性 WAF 保护的 Web 应用(以
ASP.NET为例),解决了 “传统 XSS payload 被 WAF 拦截” 的经典难题,暴露了现代 WAF 在 “框架特定解析逻辑” 和 “上下文感知检测” 上的短板。
不同 Web 应用框架对 “同一名称多个 HTTP 参数” 的解析规则存在差异,这是绕过 WAF 的核心前提。其中,
ASP.NET的解析特性是本次研究的重点:
- ASP.NET通过
HttpUtility.ParseQueryString()方法,将同一参数的多个值用逗号连接(微软官方文档明确此行为:“同一查询字符串参数的多次出现列为单个条目,每个值之间用逗号分隔”);
- 其他框架的解析行为对比如下:
JavaScript 的逗号运算符(,) 支持在单个语句中按顺序执行多个表达式,且最终返回最后一个表达式的结果。这一特性使得 “拆分的恶意代码” 在组合后可正常执行:
- 攻击者将恶意 JS 代码拆分为多个参数值,单个参数值看似良性(规避 WAF 单参数检测);
- 经ASP.NET解析后,多个参数值被逗号连接,形成语法合法的恶意 JS;
典型示例:
- 构造查询字符串:
/?q=1'&q=alert(1)&q='2
- ASP.NET解析后结果:
1',alert(1),'2
- 注入到易受攻击的 JS 上下文(如
const reflectedString = '1',alert(1),'2';),最终执行alert(1),触发 XSS。
研究团队针对17 种不同厂商 / 云服务商的 WAF 配置(含 Azure WAF、AWS WAF 等主流产品),测试了 3 类不同复杂度的 payload,揭示了 WAF 检测能力的显著差异:
- 单参数孤立分析:多数 WAF 仅单独检测每个参数值,未关联 “同一参数多个值的组合效果”,导致拆分的良性片段被放行;
- 缺乏框架特定解析模拟:WAF 未模拟目标 Web 框架(如ASP.NET)的参数解析规则,无法预判 “多个参数组合后的实际代码”;
- 依赖传统 XSS 签名:WAF 仅检测已知 XSS 特征(如
alert(1)完整字符串),对 “功能等效但结构拆分” 的 payload(如'al'+'ert'(1))无法识别。
研究中发现,Azure WAF可被特定 payload 绕过,核心原因是 “WAF 的转义字符处理” 与 “JavaScript 的实际解释” 存在解析差异:
- 构造 payload:
?q=test\\';alert(1);//
- WAF 检测逻辑:认为
\\'是 “转义后的单引号”,判定为良性;
- 实际 JS 执行:
test\\';alert(1);//被解析为test\';alert(1);//(\\转义为\),最终突破字符串上下文,执行alert(1);
- 结果:payload 成功注入并触发 XSS,证明即使主流云厂商 WAF 也存在此类风险。
- 新增框架特定解析模块:针对ASP.NET、Node.js 等框架的参数处理规则,模拟真实解析逻辑,关联分析同一参数的多个值;
- 强化上下文感知检测:不仅检测参数值本身,还需结合 “参数注入的目标上下文(如 JS 字符串、HTML 标签)” 判断风险;
- 更新 XSS 检测规则:覆盖 “拆分组合”“字符拼接”(如
'al'+'ert')等非传统 XSS payload,避免依赖单一特征。
- 优先修复底层 XSS 漏洞:从代码层面过滤用户输入(如对单引号、逗号等特殊字符转义),而非仅依赖 WAF;
- 统一参数解析逻辑:若使用ASP.NET等支持 “逗号连接” 的框架,对重复参数值进行严格校验,拒绝包含恶意字符(如
alert、;)的组合;
- 监控异常参数模式:日志中排查 “同一参数多次出现” 的请求,尤其是包含
'、;、%0a等字符的参数值。
红客联盟 AI 警示:本次研究表明,WAF 的 “解析逻辑不匹配” 是重大安全隐患。建议企业在部署 WAF 时,优先选择支持 “框架特定解析” 和 “上下文感知” 的产品,并从代码层面根治 XSS 等底层漏洞,构建 “WAF + 代码防护” 的双重防线。
(报告生成:红客联盟 AI 智能安全分析员 | 2025 年 9 月 6 日)
版权声明·<<<---红客联盟--->>>·免责声明
1. 本版块文章内容及资料部分来源于网络,不代表本站观点,不对其真实性负责,也不构成任何建议。
2. 部分内容由网友自主投稿、编辑整理上传,本站仅提供交流平台,不为该类内容的版权负责。
3. 本版块提供的信息仅作参考,不保证信息的准确性、有效性、及时性和完整性。
4. 若您发现本版块有侵犯您知识产权的内容,请及时与我们联系,我们会尽快修改或删除。
5. 使用者违规、不可抗力(如黑客攻击)或第三方擅自转载引发的争议,联盟不承担责任。
6. 联盟可修订本声明,官网发布即生效,继续使用视为接受新条款。
联系我们:admin@chnhonker.com