绕WAF不求人:自动生成绕WAFpayload,一键测试
字数 1187 2025-09-01 11:26:10

X-WAF 绕 WAF 工具使用指南

工具概述

X-WAF 是一个基于 Fuzz 测试的 WAF 绕过测试工具,当前支持命令执行和 SQL 注入绕过测试。该工具能够自动生成绕过 WAF 的 payload,并通过实际测试验证其有效性。

工具特点

  • 支持命令执行和 SQL 注入绕过
  • 基于 Fuzz 测试方法
  • 可生成多种变形 payload
  • 支持实际执行验证或模拟验证
  • 可与 Burp Suite 配合使用

安装方法

  1. 从 GitHub 获取工具源码:
    https://github.com/leveryd/x-waf
    

使用准备

1. 准备 HTTP 请求文件

创建一个包含目标请求的文件,例如 test.http,格式如下:

POST /demo/detect/ HTTP/1.1
Host: cmdchop.chaitin.com
accept: application/json, text/javascript, */*; q=0.01
accept-language: zh-CN,zh;q=0.9,en;q=0.8
content-type: application/json
cookie: _ga=GA1.2.212169703.1725506930; _ga_PNVRK9GRJ2=GS1.2.1725527773.2.1.1725529516.0.0.0; user_id=f62aa452-d92a-405a-9295-49aba0ed6d47; cid=dea7646d-7542-432f-858f-c745914a1e73; mid=c0b990d0-a3dc-455c-9f66-bac94da0b098
origin: https://cmdchop.chaitin.com
priority: u=1, i
referer: https://cmdchop.chaitin.com/demo/
sec-ch-ua: "Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "macOS"
sec-fetch-dest: empty
sec-fetch-mode: cors
sec-fetch-site: same-origin
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
x-requested-with: XMLHttpRequest
Content-Length: 50

{"type":"urlpath","payload":"/?p=cat /etc/passwd"}

2. 标记 payload 位置

在请求文件中,将需要测试的 payload 位置用 %{{.*}}% 标记:

{"type":"urlpath","payload":"/?p=%{{.*}}%"}

基本使用方法

命令执行绕过测试

./x_waf --target test/chatin-cmdchop.http --waf-block-regex payload cmd --fuzz-cmd-mode real

参数说明:

  • --target: 指定 HTTP 请求文件路径
  • --waf-block-regex: 指定 WAF 拦截时页面响应的匹配内容(支持正则表达式)
  • cmd: 指定测试类型为命令执行
  • --fuzz-cmd-mode: 指定测试模式
    • real: 实际执行命令(当前只支持查看 /etc/passwd 文件内容)
    • mock: 解析命令但不实际执行(支持任意命令)

SQL 注入绕过测试

./x_waf --target test/chatin-sqlchop.http sql --fuzz-sql 'select user from mysql.user' --fuzz-count 1000

参数说明:

  • sql: 指定测试类型为 SQL 注入
  • --fuzz-sql: 指定要测试的 SQL 语句
  • --fuzz-count: 指定生成的 payload 数量

查看结果

测试完成后,结果会保存在 result.txt 文件中:

cat result.txt

高级用法

仅生成 payload

可以与 Burp Suite 配合使用,只生成 payload 而不自动测试:

./x_waf --justOutPutPayload --target test/chatin-sqlchop.http sql --fuzz-sql 'select user from mysql.user' --fuzz-count 1000

生成的 payload 会保存在 payloads.txt 文件中,可用于 Burp Suite Intruder 模块进行手动测试。

与 Burp Suite 配合

  1. 使用 --justOutPutPayload 参数生成 payload
  2. 将生成的 payload 导入 Burp Suite Intruder
  3. 根据响应状态码或长度判断是否绕过 WAF

注意事项

  1. 实际执行命令模式 (--fuzz-cmd-mode real) 有潜在风险,应谨慎使用
  2. 测试前应确保获得合法授权
  3. 工具生成的 payload 可能触发安全警报,应在受控环境中使用
  4. 对于复杂的 WAF,可能需要结合多种技术手段进行绕过

总结

X-WAF 是一个强大的 WAF 绕过测试工具,通过自动化生成和测试多种变形 payload,帮助安全测试人员快速发现 WAF 的绕过方法。工具支持命令执行和 SQL 注入两种常见漏洞类型的测试,并提供了实际执行和模拟测试两种模式,以及与其他工具如 Burp Suite 的集成能力。

X-WAF 绕 WAF 工具使用指南 工具概述 X-WAF 是一个基于 Fuzz 测试的 WAF 绕过测试工具,当前支持命令执行和 SQL 注入绕过测试。该工具能够自动生成绕过 WAF 的 payload,并通过实际测试验证其有效性。 工具特点 支持命令执行和 SQL 注入绕过 基于 Fuzz 测试方法 可生成多种变形 payload 支持实际执行验证或模拟验证 可与 Burp Suite 配合使用 安装方法 从 GitHub 获取工具源码: 使用准备 1. 准备 HTTP 请求文件 创建一个包含目标请求的文件,例如 test.http ,格式如下: 2. 标记 payload 位置 在请求文件中,将需要测试的 payload 位置用 %{{.*}}% 标记: 基本使用方法 命令执行绕过测试 参数说明: --target : 指定 HTTP 请求文件路径 --waf-block-regex : 指定 WAF 拦截时页面响应的匹配内容(支持正则表达式) cmd : 指定测试类型为命令执行 --fuzz-cmd-mode : 指定测试模式 real : 实际执行命令(当前只支持查看 /etc/passwd 文件内容) mock : 解析命令但不实际执行(支持任意命令) SQL 注入绕过测试 参数说明: sql : 指定测试类型为 SQL 注入 --fuzz-sql : 指定要测试的 SQL 语句 --fuzz-count : 指定生成的 payload 数量 查看结果 测试完成后,结果会保存在 result.txt 文件中: 高级用法 仅生成 payload 可以与 Burp Suite 配合使用,只生成 payload 而不自动测试: 生成的 payload 会保存在 payloads.txt 文件中,可用于 Burp Suite Intruder 模块进行手动测试。 与 Burp Suite 配合 使用 --justOutPutPayload 参数生成 payload 将生成的 payload 导入 Burp Suite Intruder 根据响应状态码或长度判断是否绕过 WAF 注意事项 实际执行命令模式 ( --fuzz-cmd-mode real ) 有潜在风险,应谨慎使用 测试前应确保获得合法授权 工具生成的 payload 可能触发安全警报,应在受控环境中使用 对于复杂的 WAF,可能需要结合多种技术手段进行绕过 总结 X-WAF 是一个强大的 WAF 绕过测试工具,通过自动化生成和测试多种变形 payload,帮助安全测试人员快速发现 WAF 的绕过方法。工具支持命令执行和 SQL 注入两种常见漏洞类型的测试,并提供了实际执行和模拟测试两种模式,以及与其他工具如 Burp Suite 的集成能力。