Repository navigation
v1.7.0 — 交付物 / KPI / 复测 / 越权 / 前端情报
路线图第 3/4/5/6/7 项的代码部分(一次发布)。
| 路线图 | 交付 |
|---|---|
| 5 交付物 | CVSS 3.1 计算器(与官方参考向量一致:9.8 / 6.1 / 1.8 / 0)、docx 生成、证据包(sha256 清单) |
| 7 降噪度量 | 候选→确认转化率、误报率上界、高危确认率、噪声规则榜;跨引擎合并(同位置同规则族合并 + 置信度提升) |
| 6 复测回归 | 两次评估 diff:已修复/仍存在/新增/回归(回归定义为"上轮标记已修复、本轮又重现") |
| 4 认证授权 | JWT 静态分析(alg=none/弱 HMAC 离线爆破/kid 注入/jku/缺 exp/敏感声明)+ 访问矩阵 + 越权归类(IDOR/BOLA 候选) |
| 3 攻击面(代码部分) | JS 端点/参数/硬编码密钥抽取(含熵判断)+ 内网地址识别 + crt.sh 子域枚举 |
实现要点
- 零运行时依赖:docx 与证据包都是 zip,而 Node 没有 zip 容器 —— 用
lib/zip.mjs
自己写了最小的 ZIP 写入器(deflate/存储 + 中央目录 + EOCD + CRC32),不引第三方包。 - 越权判定不靠猜:
classifyAccessPair(属主响应, 另一身份响应)→
protected/idor-candidate/bola-candidate/indeterminate;
候选不是结论,报告里明确要求人工核对资源归属。 - KPI 用本插件的语义:候选 = 已记录的
kind=vuln事实(未验证),
确认 = findings(带可复现步骤)—— 这样"确认率"才反映真实的降噪效果。
测试
新增 test/analysis.test.mjs 53 项:zip 往返与两种压缩方式、CVSS 参考向量、
docx 部件完整性与 XML 转义(防注入)、证据包哈希、KPI 计算与合并、复测四类结论、
JWT(含真签一个弱密钥令牌做离线命中)、矩阵与越权归类、JS 抽取与 crt.sh 解析。
npm test 13 个测试文件全绿;npm run check 30/30。