webscan/fingerprint/README.md
fscan现在集成了FingerprintHub的Web指纹库,实现双指纹库并行识别,识别能力提升12.5倍。
rules.go (硬编码)web_fingerprint_v4.json (1.3MB)基础指纹: 272条
增强指纹: 3,139条
─────────────────
总计: 3,411条
提升倍数: 12.5x
┌─────────────────────────────────────┐
│ fingerprint_scanner.go │
│ InfoCheck() 统一入口 │
└─────────────────────────────────────┘
│
├─> 基础指纹库
│ ├─ matchByRegex() (242条)
│ └─ matchByMd5() (30条)
│
└─> 增强指纹库
└─ MatchEnhancedFingerprints() (3139条)
├─ matchWords() (关键词匹配)
├─ matchRegex() (正则匹配)
└─ matchFavicon() (icon hash)
支持的matcher类型:
- word: 关键词匹配 (大小写可选)
- regex: 正则表达式匹配
- favicon: 图标hash匹配
- or: 任一条件满足即匹配 (默认)
- and: 所有条件都满足才匹配
- body: 响应体匹配 (默认)
- header: 响应头匹配
import "github.com/shadow1ng/fscan/webscan/fingerprint"
// 自动加载并匹配
body := []byte("<html>...</html>")
headers := "Server: nginx/1.18.0"
// 计算 favicon hash(同时支持 mmh3 和 MD5 格式)
faviconData := []byte{...} // 从 /favicon.ico 下载的数据
favicon := fingerprint.CalculateFaviconHashes(faviconData)
matched := fingerprint.MatchEnhancedFingerprints(body, headers, favicon)
// 返回: ["nginx", "wordpress", ...]
WordPress指纹:
{
"id": "wordpress",
"info": {
"name": "wordpress",
"tags": "detect,tech,wordpress"
},
"http": [{
"matchers": [{
"type": "word",
"words": [
"/wp-content/themes/",
"/wp-includes/"
],
"case-insensitive": true
}]
}]
}
禅道OA指纹 (AND条件):
{
"id": "zentao",
"http": [{
"matchers": [{
"type": "word",
"words": [
"/zentao/theme",
"zentaosid"
],
"condition": "and"
}]
}]
}
Favicon Hash指纹:
{
"id": "openemr",
"http": [{
"matchers": [{
"type": "favicon",
"hash": ["1971268439"]
}]
}]
}
$ go run test_enhanced_fingerprint.go
✅ 增强指纹库加载成功
测试1 - WordPress识别:
匹配结果: [wordpress]
✅ WordPress指纹匹配成功
测试2 - Nginx识别:
匹配结果: [nginx]
✅ Nginx指纹匹配成功
测试3 - 禅道OA识别:
匹配结果: [zentao-system zentao]
✅ 禅道指纹匹配成功
| 文件 | 大小 | 说明 |
|---|---|---|
web_fingerprint_v4.json | 1.3MB | FingerprintHub指纹库 |
enhanced.go | ~7KB | 增强指纹匹配引擎 |
rules.go | ~150KB | 基础指纹库(原有) |
fingerprint_scanner.go | ~3KB | 统一入口(修改) |
| 维度 | 基础指纹库 | 增强指纹库 |
|---|---|---|
| 数量 | 272条 | 3,139条 |
| 来源 | 内置 | FingerprintHub |
| 格式 | Go代码 | JSON |
| 扩展性 | 需改代码 | 社区更新 |
| 覆盖范围 | 国内OA/WAF | 国内外全栈 |
| Favicon | ❌ | ✅ |
| 版本提取 | ❌ | ✅ (待实现) |
| Condition | 简单 | AND/OR |
| Part | 固定 | 可选 |
增强指纹库来自FingerprintHub项目,遵循其原始License。