[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81710":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":17,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":20,"hasPages":20,"topics":22,"createdAt":10,"pushedAt":10,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":15,"starSnapshotCount":15,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},81710,"wafkiller","m-sec-org\u002Fwafkiller","m-sec-org","Make WAF Bypassing Great Again!","",null,"Go",46,11,42,0,4,12,53.64,"MIT License",false,"main",[],"2026-06-12 04:01:35","# WAF Killer\n`WAF Killer` 是一个使用 Go 编写的桌面工具，主要用于采集疑似存在 WAF 的站点、做 WAF 指纹识别、管理规则，并对规则验证结果进行聚类和统计展示。\n\n## 使用说明\n第一次启动时，默认没有WAF池数据，需要自动化灌入数据便于测试。需要先配置fofa key，然后点击一键执行，这里可以将 ✖️ 后面的数字改大一些，推荐使用8-10，这样可以连续多轮从Fofa 拉去数据灌入WAF池，一键执行会自动生成采样关键词（每轮随机产生），然后自动识别站点是否存在WAF，自动对WAF拦截页面生成浏览器快照并进行聚类。聚类后我们可以手工根据经验为WAF产品厂商添加标签，便于后续测试的时候快速找出针对某厂商WAF的通用绕过规则。\n![Main](https:\u002F\u002Fgithub.com\u002Fm-sec-org\u002Fwafkiller\u002Fblob\u002Freadme-assets\u002Fassets\u002FMain.gif?raw=1)\n\n扫描后，可根据经验对新增的聚类分组打标签，标记WAF类型，这些标记会固化到规则便于下次直接匹配。可根据经验编写绕过规则，也可以用内置AI模型直接生成规则，目前支持GPT-Codex和智谱-GLM两种模型。以最近热度较高的Java幽灵比特绕过为例：\n![110529_766](https:\u002F\u002Fgithub.com\u002Fm-sec-org\u002Fwafkiller\u002Fblob\u002Freadme-assets\u002Fassets\u002F28a843953e4955bd650b89bb91c4f12a.jpg?raw=1)\n\n生成的规则如下：\n![110500_448](https:\u002F\u002Fgithub.com\u002Fm-sec-org\u002Fwafkiller\u002Fblob\u002Freadme-assets\u002Fassets\u002F110500_448.jpg?raw=1)\n\n通过规则验证，测试规则bypass成功率：\n![110620_011](https:\u002F\u002Fgithub.com\u002Fm-sec-org\u002Fwafkiller\u002Fblob\u002Freadme-assets\u002Fassets\u002F110620_011.jpg?raw=1)\n还可以通过规则对比，观察两条规则绕过的差异：\n![](https:\u002F\u002Fgithub.com\u002Fm-sec-org\u002Fwafkiller\u002Fblob\u002Freadme-assets\u002Fassets\u002F17781233482441.jpg?raw=1)\n\n![](https:\u002F\u002Fgithub.com\u002Fm-sec-org\u002Fwafkiller\u002Fblob\u002Freadme-assets\u002Fassets\u002F17781233697412.jpg?raw=1)\n\n\n## 主要能力\n\n- 通过 FOFA 批量采集站点\n- 对响应进行疑似 WAF 识别与聚类\n- 支持 `waf.yaml` 指纹规则识别\n- 支持基于原始 HTTP 报文的规则库加载与验证\n- 支持绕过统计、规则对比、详情查看\n- 支持运行数据导入、导出\n- 支持 OpenAI \u002F 智谱 智能体接入\n- 支持上行代理、下行代理与证书配置\n\n## 目录说明\n\n核心目录如下：\n\n- [main.go](main.go)：程序入口\n- [internal\u002Fui](internal\u002Fui)：桌面界面与主要交互逻辑\n- [internal\u002Ftester](internal\u002Ftester)：规则验证与请求执行\n- [internal\u002Fdetector](internal\u002Fdetector)：站点探测与相似度判断\n- [internal\u002Fplugin](internal\u002Fplugin)：规则加载与元信息解析\n- [internal\u002Fstore](internal\u002Fstore)：本地数据存储\n- [plugins](plugins)：高级规则目录\n- [waf.yaml](waf.yaml)：WAF 识别规则\n- [config.json](config.json)：本地运行配置\n- [config.release.json](config.release.json)：发布配置模板\n\n## 运行环境\n\n- Go `1.25+`\n- 默认使用仓库自带 `vendor\u002F` 依赖\n- macOS 本地运行可直接 `make run`\n- Windows 交叉编译需要 `mingw-w64`\n\n## 快速开始\n\n### 1. 准备配置\n\n程序默认读取项目根目录的 `config.json`。\n\n如果只是本地体验界面，可以先直接运行；如果要用 FOFA、智能体或代理，再补充相关配置。\n\n### 2. 启动程序\n\n```bash\nmake run\n```\n\n或直接执行：\n\n```bash\nGOCACHE=$(pwd)\u002F.gocache GOMODCACHE=$(pwd)\u002F.gomodcache go run -mod=vendor .\n```\n\n### 3. 常用构建\n\n```bash\nmake build\n```\n\n该命令会编译当前仓库所有 Go 包，适合日常检查改动是否可编译。\n\n## Windows 64 位发布\n\n仓库已经提供了 Windows 发布脚本：\n\n- [scripts\u002Fbuild_windows_release.sh](scripts\u002Fbuild_windows_release.sh)\n\n脚本行为：\n\n- 生成 `release\u002Fwindows-amd64\u002F`\n- 复制脱敏后的 `config.json`\n- 保留 `waf.yaml`\n- 保留 `plugins\u002F`\n- 编译 `wafbps.exe`\n\n执行方式：\n\n```bash\nscripts\u002Fbuild_windows_release.sh\n```\n\n当前发布产物默认放在：\n\n- [release\u002Fwindows-amd64](release\u002Fwindows-amd64)\n- [release\u002Fwafbps-windows-amd64.zip](release\u002Fwafbps-windows-amd64.zip)\n\n说明：\n\n- 发布包不会复用你本地正在使用的 `config.json`\n- FOFA、OpenAI、智谱的密钥会被清空\n- 发布配置默认关闭智能体\n\n## 配置文件说明\n\n默认配置文件是 `config.json`，常用字段如下。\n\n### FOFA\n\n- `fofa.email`：FOFA 邮箱\n- `fofa.api_key`：FOFA Key\n- `fofa.query`：默认查询语句\n- `fofa.size`：每轮采集数量\n\n### 应用\n\n- `app.database_path`：本地数据库路径\n- `app.window_title`：窗口标题\n\n### 探测与验证\n\n- `tester.timeout_seconds`：请求超时\n- `tester.concurrency`：并发数\n- `tester.snapshot_concurrency`：快照并发数\n- `tester.verify_tls`：是否校验证书\n- `tester.default_scheme`：默认协议\n\n### 规则目录\n\n- `plugin.dir`：规则目录，默认 `plugins`\n\n### 智能体\n\n- `llm_provider`：当前默认智能体供应商\n- `openai.enabled` \u002F `zhipu.enabled`：是否启用\n- `openai.api_key` \u002F `zhipu.api_key`：各自密钥\n- `openai.proxy_url` \u002F `zhipu.proxy_url`：各自独立代理\n\n### 变量\n\n- `variables.USER_AGENT`：默认浏览器 UA\n- `variables.PAYLOAD`：默认示例变量\n\n## 规则文件格式\n\n规则文件支持：\n\n- `.http`\n- `.req`\n- `.txt`\n\n推荐写成原始 HTTP 报文格式，例如：\n\n```http\n# @name: 示例规则\n# @color: green\n# @validate: baseline_similarity\n# @threshold: 0.90\n# @tags: demo,post\n# @intent: replace\n# @intent.replace_from: \" \"\n# @intent.replace_to: \"%20\"\nPOST \u002F HTTP\u002F1.1\nHost: {{TARGET_HOST_HEADER}}\nUser-Agent: {{USER_AGENT}}\nContent-Type: application\u002Fx-www-form-urlencoded\n\nid=1\n```\n\n## 规则元信息\n\n目前支持的常用元信息：\n\n- `# @name:`：规则名称\n- `# @tags:`：标签，逗号分隔\n- `# @color:`：规则颜色\n- `# @scheme:`：默认协议\n- `# @validate:`：验证模式\n- `# @threshold:`：相似度阈值\n- `# @note:`：备注\n- `# @intent:`：规则意图\n- `# @intent.xxx:`：意图参数\n- `# @preflight_mode:`：预探测方式\n- `# @preflight_prune:`：预探测是否自动裁剪无效 URL\n\n说明：\n\n- 旧版 `@waf` 过滤机制已经移除，规则不会再按目标 WAF 类型做精确筛选\n- `template.http` 是内置模板规则，会自动保留\n\n## `@color` 可选颜色\n\n- `cyan`\n- `blue`\n- `green`\n- `amber`\n- `orange`\n- `gold`\n- `pink`\n- `purple`\n- `violet`\n- `lavender`\n- `red`\n- `rose`\n- `teal`\n- `yellow`\n- `white`\n- `ice`\n\n## 预探测控制\n\n规则可通过元信息控制系统内置预探测：\n\n```http\n# @preflight_mode: skip\n# @preflight_prune: false\n```\n\n含义：\n\n- `preflight_mode: skip`\n  - 跳过系统内置预探测\n- `preflight_prune: false`\n  - 即使预探测发现异常，也不自动删除该 URL\n\n如果不写，程序按默认内置逻辑执行。\n\n## 可用占位符\n\n规则模板中可使用的占位符包括：\n\n- `{{TARGET_URL}}`\n- `{{TARGET_HOST}}`\n- `{{TARGET_HOST_HEADER}}`\n- `{{TARGET_DOMAIN}}`\n- `{{TARGET_IP}}`\n- `{{TARGET_PORT}}`\n- `{{TARGET_TITLE}}`\n- `{{TARGET_WAF}}`\n- `{{TARGET_ORIGIN}}`\n- `{{PLUGIN_NAME}}`\n- `{{TIMESTAMP}}`\n- `{{RAND}}`\n\n以及 `config.json` 中 `variables` 定义的自定义变量，例如：\n\n- `{{USER_AGENT}}`\n- `{{PAYLOAD}}`\n\n建议：\n\n- `Host` 头优先使用 `{{TARGET_HOST_HEADER}}`\n- `User-Agent` 建议显式写成 `{{USER_AGENT}}`\n\n## 数据文件\n\n运行过程中常见数据文件：\n\n- [data\u002Fwafkiller.db.json](data\u002Fwafkiller.db.json)：主数据文件\n- [data\u002Fwafkiller.db.json.startup.json](data\u002Fwafkiller.db.json.startup.json)：启动快照\n- [data\u002Frule_validation_diagnostics.log](data\u002Frule_validation_diagnostics.log)：关键诊断日志\n\n说明：\n\n- 初始化不会删除内置模板规则\n- 手工标记的聚类规则会持久化保存\n- 导入导出会包含程序运行数据、规则库和相关配置\n\n## 导入与导出\n\n程序支持将当前运行数据导出为单文件包，并支持再次导入恢复。\n\n导出内容通常包含：\n\n- `config.json`\n- `waf.yaml`\n- 本地数据库\n- 启动快照\n- 规则目录\n- 关键诊断日志\n\n这部分逻辑位于：\n\n- [internal\u002Fexporter\u002Fworkspace_bundle.go](internal\u002Fexporter\u002Fworkspace_bundle.go)\n\n## 智能体说明\n\n当前支持：\n\n- OpenAI Responses API\n- 智谱 API\n\n特点：\n\n- 两个供应商可切换\n- 可分别配置独立代理\n- 配置入口已与 FOFA 分开\n- 对话窗口支持自动换行\n\n如果要发布给他人使用，建议：\n\n- 使用 [config.release.json](config.release.json)\n- 不要直接分发你本机的 `config.json`\n\n## 开发建议\n\n日常开发建议优先使用：\n\n```bash\nmake build\n```\n\n如果需要重新整理依赖：\n\n```bash\nmake tidy\nmake vendor\n```\n\n如果遇到国内网络拉取依赖慢，可设置：\n\n```bash\ngo env -w GOPROXY=https:\u002F\u002Fgoproxy.cn,direct\ngo env -w GOSUMDB=sum.golang.google.cn\n```\n\n## 说明\n\n本项目适合在授权环境中用于规则验证、识别分析、产品测试和内部研究。发布或共享版本时，建议始终使用脱敏配置，并对本地数据与密钥做单独管理。\n","WAF Killer 是一个用 Go 语言编写的桌面工具，旨在帮助用户识别和绕过 Web 应用防火墙（WAF）。其核心功能包括通过 FOFA 批量采集站点、疑似 WAF 识别与聚类、基于 HTTP 报文的规则验证及智能生成绕过规则。该工具支持多种高级特性，如 OpenAI 和智谱 AI 模型集成、上行\u002F下行代理配置等，使得 WAF 绕过策略的探索更加高效且易于管理。适用于网络安全研究者或渗透测试人员在合法授权的情况下进行 WAF 测试与评估，以提升网站的安全防护能力。",2,"2026-06-11 04:06:03","CREATED_QUERY"]