绕WAF不求人:自动生成绕WAFpayload,一键测试
字数 1187 2025-09-01 11:26:10
X-WAF 绕 WAF 工具使用指南
工具概述
X-WAF 是一个基于 Fuzz 测试的 WAF 绕过测试工具,当前支持命令执行和 SQL 注入绕过测试。该工具能够自动生成绕过 WAF 的 payload,并通过实际测试验证其有效性。
工具特点
- 支持命令执行和 SQL 注入绕过
- 基于 Fuzz 测试方法
- 可生成多种变形 payload
- 支持实际执行验证或模拟验证
- 可与 Burp Suite 配合使用
安装方法
- 从 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 配合
- 使用
--justOutPutPayload参数生成 payload - 将生成的 payload 导入 Burp Suite Intruder
- 根据响应状态码或长度判断是否绕过 WAF
注意事项
- 实际执行命令模式 (
--fuzz-cmd-mode real) 有潜在风险,应谨慎使用 - 测试前应确保获得合法授权
- 工具生成的 payload 可能触发安全警报,应在受控环境中使用
- 对于复杂的 WAF,可能需要结合多种技术手段进行绕过
总结
X-WAF 是一个强大的 WAF 绕过测试工具,通过自动化生成和测试多种变形 payload,帮助安全测试人员快速发现 WAF 的绕过方法。工具支持命令执行和 SQL 注入两种常见漏洞类型的测试,并提供了实际执行和模拟测试两种模式,以及与其他工具如 Burp Suite 的集成能力。