BlazeHTTP 是一款簡單易用的 WAF 防護效果測試工具
樣本豐富:目前總樣本33669條,持續更新中...
無需配置:提供圖形化界面和命令行版本,可直接通過 Release 下載預編譯版本,也可以克隆代碼本地自行編譯
報告導出:導出所有樣本的執行結果,包括樣本屬性,執行時間,狀態碼,是否攔截等
測試指標
指標 描述 統計方法
檢出率 用來反應 WAF 檢測能力的全面性,沒有檢出即為 ”漏報“。 攻擊樣本攔截數量
誤報率 用來反應對正常流量的干擾,不靠譜的結果即為 ”誤報“。 正常樣本攔截數量
準確率 準確率是檢出率和誤報率的綜合指標,避免漏報和誤報顧此失彼。
檢測耗時 用來反應 WAF 性能,耗時越大則性能越差。
樣本示例
# 正常樣本:testcases/00/02/5ebf56a710da27b73a9ad59219f0.white
GET /rc-virtual-list@3.5.2/lib/hooks/useHeights.js HTTP/1.1
Host: npm.staticblitz.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
Accept: */*
Origin: //stackblitz.com
Sec-Fetch-Site: cross-site
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: //stackblitz.com/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
# 黑樣本:testcases/8a/36/0bbc7685860c526e33f3cbd83f9c.black
GET /vulnerabilities/sqli_blind/?id=1%27+or+%27%27%3D%27&Submit=Submit HTTP/1.1
Host: 10.10.3.128
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: //10.10.3.128/vulnerabilities/sqli_blind/?id=1%27+and+%27%27%3D%27&Submit=Submit
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
Connection: close
測試效果
| 指標 | CloudFlare,免費版本 | ModSecurity,PARANOIA級別1 | ModSecurity,PARANOIA級別4 | SafeLine,免費版本,平衡模式 | SafeLine,免費版本,嚴格模式 |
|---|---|---|---|---|---|
| 總樣本數量 | 33669 | 33669 | 33669 | 33669 | 33669 |
| 成功 | 33350 | 33669 | 33669 | 33669 | 33669 |
| 錯誤 | 319 | 0 | 0 | 0 | 0 |
| 檢測率(越高越好) | 10.70%(惡意樣本總數:570,正確攔截:61,漏報:509) | 69.74%(惡意樣本總數:575,正確攔截:401,漏報:174) | 94.61%(惡意樣本總數:575,正確攔截:544,漏報:31) | 71.65%(惡意樣本總數:575,正確攔截:412,漏報:163) | 76.17%(惡意樣本總數:575,正確攔截:438,漏報:137) |
| 誤報率(越低越好) | 0.07%(正常樣本總數:32780,正確放行:32757,誤報:23) | 17.58%(正常樣本總數:33094,正確放行:27275,誤報:5819) | 52.46%(正常樣本總數:33094,正確放行:15732,誤報:17362) | 0.07%(正常樣本總數:33094,正確放行:33071,誤報:23) | 0.22%(正常樣本總數:33094,正確放行:33021,誤報:73) |
| 準確率(越高越好) | 98.40%(正確攔截 + 正確放行)/ 總樣本數量 | 82.20%(正確攔截 + 正確放行)/ 總樣本數量 | 48.34%(正確攔截 + 正確放行)/ 總樣本數量 | 99.45%(正確攔截 + 正確放行)/ 總樣本數量 | 99.38%(正確攔截 + 正確放行)/ 總樣本數量 |
| 平均時間 | 288.96 毫秒 | 31.15 毫秒 | 28.89 毫秒 | 70.05 毫秒 | 64.34 毫秒 |
本地編譯
命令行版本
# 克隆代碼
git clone //github.com/chaitin/blazehttp.git && cd blazehttp
# 本地編譯
bash build.sh # 執行后在 build 目錄下看到 blazehttp
# 運行
./blazehttp -t //example.org
GUI 版本
GUI 是基于 fyne實現。
# 克隆代碼
git clone //github.com/chaitin/blazehttp.git && cd blazehttp
# 本地運行
go run gui/main.go