返回顶部
w

waf-rule-validatorWAF规则验证器

WAF Rule Validator - Tool for testing and validating WAF security rules

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
97
下载量
免费
免费
1
收藏
概述
安装方式
版本历史

waf-rule-validator

WAF规则验证器技能

目的

WAF规则验证器是一个用于评估Web应用安全解决方案(WAF、API网关、IPS)的工具。它通过生成恶意请求来测试安全防护规则的有效性,支持REST、GraphQL、gRPC、SOAP、XMLRPC等多种API协议。

何时激活

  • - 用户需要测试WAF规则有效性时
  • 对Web应用防火墙进行安全验证时
  • 评估API网关安全防护时
  • 对WAF部署进行渗透测试时
  • 对WAF拦截率性能进行基准测试时

功能特性

  • - 多协议支持:REST、GraphQL、gRPC、SOAP、XMLRPC
  • 多种编码方式:Base64、URL、JSUnicode、Plain、XML实体
  • 多个注入点:URL路径、URL参数、请求头、请求体、JSON、HTML表单
  • OpenAPI集成:从OpenAPI规范生成请求模板
  • 自动WAF检测:识别Akamai、F5、Imperva、ModSecurity等
  • 多种报告格式:PDF、HTML、JSON、DOCX评估报告

工作流程

构建

  1. 1. 构建Go二进制文件:
bash make gotestwaf_bin # 或 go build -o gotestwaf ./cmd/gotestwaf

基础扫描

  1. 2. 对目标运行基础扫描:
bash ./gotestwaf --url=http://target-url --noEmailReport

高级用法

  1. 3. 针对特定协议或配置:
- gRPC测试:--grpcPort 9000 - OpenAPI:--openapiFile api.yaml - 自定义测试用例:--testCasesPath ./custom-testcases

分析结果

  1. 4. 查看reports/目录下生成的报告

测试用例格式

测试用例使用YAML定义:

yaml
payload:
- 恶意字符串1
- 恶意字符串2
encoder:
- Base64Flat
- URL
placeholder:
- URLPath
- JSONRequest
type: SQL注入

每个文件生成len(payload) × len(encoder) × len(placeholder)个测试请求。

支持的编码器

编码器描述
Base64Base64编码
Base64Flat
无填充Base64编码 | | URL | URL编码 | | JSUnicode | JavaScript Unicode编码 | | Plain | 无编码 | | XML实体 | XML实体编码 |

支持的占位符

占位符描述
URLPathURL路径
URLParam
URL参数 | | Header | HTTP请求头 | | UserAgent | User-Agent请求头 | | RequestBody | 请求体 | | JSONBody | JSON请求体 | | JSONRequest | JSON请求 | | HTMLForm | HTML表单 | | HTMLMultipartForm | 多部分表单 | | SOAPBody | SOAP消息体 | | XMLBody | XML请求体 | | gRPC | gRPC请求 | | GraphQL | GraphQL请求 | | RawRequest | 原始HTTP请求 |

配置选项

--url string 目标URL(必需)
--grpcPort uint16 gRPC端口
--graphqlURL string GraphQL URL
--openapiFile string OpenAPI规范文件路径
--testCasesPath string 测试用例目录(默认:testcases)
--testCase string 仅运行指定测试用例
--testSet string 仅运行指定测试集
--httpClient string HTTP客户端类型:chrome, gohttp(默认:gohttp)
--workers int 并发工作线程数(默认:5)
--blockStatusCodes ints 被拦截请求的HTTP状态码(默认:[403])
--passStatusCodes ints 通过请求的HTTP状态码(默认:[200,404])
--blockRegex string 识别被拦截响应的正则表达式
--passRegex string 识别通过响应的正则表达式
--reportFormat strings 报告格式:none, json, html, pdf, docx(默认:[pdf])
--reportPath string 报告输出目录(默认:reports)
--reportName string 报告文件名
--noEmailReport 将报告保存在本地而非发送邮件
--wafName string WAF产品名称(默认:generic)
--skipWAFIdentification 跳过WAF检测
--version 显示版本信息

示例

基础扫描

bash ./gotestwaf --url=http://localhost:8080 --noEmailReport

gRPC测试

bash ./gotestwaf --url=http://localhost --grpcPort 9000 --noEmailReport

OpenAPI驱动测试

bash ./gotestwaf --url=http://api.example.com --openapiFile ./api.yaml --noEmailReport

Docker使用

bash docker pull wallarm/gotestwaf docker run --rm --network=host -v ${PWD}/reports:/app/reports \ wallarm/gotestwaf --url=http://target-url --noEmailReport

系统要求

  • - Go 1.24+
  • Chrome浏览器(可选,用于PDF报告生成)

项目结构

.
├── cmd/gotestwaf/ # 主入口
├── internal/
│ ├── config/ # 配置管理
│ ├── db/ # 测试用例数据库
│ ├── payload/ # 载荷编码
│ │ ├── encoder/ # 编码器实现
│ │ └── placeholder/ # 占位符实现
│ ├── scanner/ # 扫描逻辑和客户端
│ ├── openapi/ # OpenAPI解析器
│ └── report/ # 报告生成
├── pkg/ # 导出包
├── testcases/ # 默认测试用例
└── tests/integration/ # 集成测试

注意事项

  • - 本项目基于Wallarm的GoTestWAF
  • testcases/owasp/中的测试用例为真阳性(应被拦截)
  • testcases/false-pos/中的测试用例为真阴性(应通过)
  • 报告默认保存到reports/目录

许可证

MIT许可证 - 基于原始GoTestWAF项目。

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 waf-validator-skills-1775719446 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 waf-validator-skills-1775719446 技能

通过命令行安装

skillhub install waf-validator-skills-1775719446

下载

⬇ 下载 waf-rule-validator v1.0.0(免费)

文件大小: 3.08 KB | 发布时间: 2026-4-11 23:03

v1.0.0 最新 2026-4-11 23:03
WAF Rule Validator 是一个用于评估 Web 应用安全解决方案(WAF、API 网关、IPS)的工具。它通过生成恶意请求来测试安全防护规则的有效性,支持 REST、GraphQL、gRPC、SOAP、XMLRPC 等多种 API 协议。

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部