文件
websafe-kb/README.md

132 行
9.5 KiB
Markdown

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# 授权攻防实验与研究知识库
> `LAB ONLY` | `AUTHORIZED TARGETS ONLY` | `非生产安全基线`
本仓库定位为“授权攻防实验库”,覆盖本地靶场、自建公网测试资产和已明确授权的验证目标。内容允许出现验证性攻击演示、测试性注入、同服务器站点排查、真实漏洞映射和自动化订阅,但所有语境都绑定到自有或授权目标,不面向无关第三方站点或公共知名网站。
## 入口
- [项目文档总览](/Users/x/websafe/docs/README.md)
- [目标边界与授权模型](/Users/x/websafe/09-scope-and-targeting/authorization-model.md)
- [主流开源 Web 系统安全总览](/Users/x/websafe/07-framework-security/README.md)
- [漏洞情报与自动入库总览](/Users/x/websafe/08-threat-intel/README.md)
- [覆盖矩阵](/Users/x/websafe/08-threat-intel/generated/coverage-matrix.md)
- [最新同步摘要](/Users/x/websafe/08-threat-intel/generated/latest-ingest.md)
- [唯一真值配置 `source-map.yaml`](/Users/x/websafe/08-threat-intel/source-map.yaml)
## 仓库结构
```text
websafe/
├── 00-environments/ # 系统 catalog、真实版本/当前版本 profile、synthetic 模板
├── 01-sql-injection/ # SQL 注入实验
├── 02-xss/ # XSS 与浏览器端注入实验
├── 03-authentication/ # 认证、会话与 JWT 实验
├── 04-server-security/ # 服务器、TLS、暴露面与关联面实验
├── 05-defense/ # 检测、观测、实验对照与代码修复示例
├── 06-case-studies/ # 授权案例与 run bundle / 报告归档
├── 07-framework-security/ # CMS、电商、框架、服务器、平台系统安全
├── 08-threat-intel/ # source-map、repro-map、registry、dashboard、订阅规则、自动入库
├── 09-scope-and-targeting/ # 授权模型、资产模板、测试记录模板
├── docs/ # 项目功能文档、前端设计文档与展示规范
├── requirements-intel.txt # intel + lab 自动化依赖(含 Playwright Python 包)
├── scripts/intel/ # hotlane / ingest / reconcile / backfill / open-pr CLI
└── scripts/lab/ # provision / baseline / attack / browser / evidence / render / queue CLI
```
## 能力矩阵
| 覆盖域 | 历史全量策略 | 近两年策略 | 全量 registry | 重点案例 Markdown | secure-code 关联 | 本地实证状态 | 浏览器证据 | run bundle | 看板展示 | 自动同步状态 |
|--------|--------------|------------|---------------|--------------------|------------------|--------------|------------|-----------|----------|--------------|
| CMS / 内容平台 | `WordPress`, `Drupal`, `Joomla` | `Ghost`, `Strapi`, `Directus`, `MediaWiki`, `Moodle`, `Discourse` | `registry/advisories + registry/systems` | `core 全量 + 高价值 extension` | `yes` | `verified-real / verified-synthetic / blocked-* / triage-manual` | `前端类强制` | `06-case-studies/generated-runs` | `dashboard + report` | `render / ingest / hotlane / reconcile ready` |
| 电商系统 | `Adobe Commerce`, `Magento Open Source`, `WooCommerce`, `PrestaShop`, `Shopware`, `OpenCart` | `OpenMage`, `Saleor`, `Medusa` | `registry/advisories + registry/systems` | `core 全量 + 高价值 module` | `yes` | `同上` | `前台/后台面板类强制` | `run bundle + logs` | `dashboard + report` | `render / ingest / hotlane / reconcile ready` |
| Web 框架与运行时 | `React`, `Next.js`, `Vue`, `Nuxt`, `Vite`, `Node.js`, `Nginx`, `Apache HTTP Server`, `Apache Tomcat` | 其余主流框架与运行时按 `rolling-24m` | `registry/advisories + registry/systems` | `core 全量 + 高价值 package` | `yes` | `family runner + advisory profile` | `浏览器/HTTP 混合` | `run bundle + timeline` | `dashboard + report` | `render / ingest / hotlane / reconcile ready` |
| 开源平台与后台系统 | `history-full` 不强制 | `phpMyAdmin`, `Adminer`, `Gitea`, `GitLab CE`, `Jenkins`, `Grafana`, `Kibana`, `Mattermost`, `Redmine` | `registry/advisories + registry/systems` | `高价值案例输出` | `yes` | `真实版本优先` | `Web 面板类强制` | `run bundle + screenshots` | `dashboard + report` | `render / ingest / hotlane / reconcile ready` |
| 修复示例库 | 不适用 | 不适用 | 不适用 | 由案例页反向链接 | `javascript-typescript`, `nodejs`, `java`, `php`, `python`, `ruby`, `csharp`, `go` | `由案例反向映射` | `不适用` | `不适用` | `索引页` | `render ready` |
| 自动化入库与实证 | `backfill --tier history-full` | `ingest --since`, `reconcile` | `registry + generated + registry/runs` | `基于 render_policy` | `front matter 反向链接` | `queue + run-case / run-batch` | `Playwright required for browser cases` | `report.md / report.html / timeline.mmd` | `serve-dashboard` | `open-pr / cron ready` |
## 当前覆盖对象
当前 `source-map.yaml` 已纳入 62 个主流开源 Web 系统,分为五组:
- CMS / 内容平台WordPress、Drupal、Joomla、Ghost、Strapi、Directus、MediaWiki、Moodle、Discourse
- 电商系统Adobe Commerce、Magento Open Source、OpenMage / Mage-OS、WooCommerce、PrestaShop、Shopware、OpenCart、Saleor、Medusa
- Web 框架与运行时React、Next.js、Vue、Nuxt、Vite、Angular、SvelteKit、Astro、Express、NestJS、Koa、Fastify、Hapi、Node.js、Undici、webpack、esbuild、Spring Framework、Spring Security、Spring Boot、Laravel、Symfony、Django、Flask、Werkzeug、Rails、ASP.NET Core、Gin、Echo
- 服务器与边界层Nginx、Apache HTTP Server、Apache Tomcat、Caddy、Traefik、HAProxy
- 常见开源平台phpMyAdmin、Adminer、Gitea、GitLab CE、Jenkins、Grafana、Kibana、Mattermost、Redmine
## 自动化入口
```bash
python3 /Users/x/websafe/scripts/intel/main.py render
python3 /Users/x/websafe/scripts/intel/main.py validate
python3 /Users/x/websafe/scripts/intel/main.py hotlane
python3 /Users/x/websafe/scripts/intel/main.py ingest --since last-success
python3 /Users/x/websafe/scripts/intel/main.py reconcile
python3 /Users/x/websafe/scripts/intel/main.py backfill --tier history-full --dry-run
python3 /Users/x/websafe/scripts/intel/main.py open-pr --dry-run
python3 /Users/x/websafe/scripts/lab/main.py catalog sync
python3 /Users/x/websafe/scripts/lab/main.py validate
python3 /Users/x/websafe/scripts/lab/main.py run-case --case nextjs--CVE-2025-29927 --dry-run
python3 /Users/x/websafe/scripts/lab/main.py run-batch --only-hotlane --limit 10
python3 /Users/x/websafe/scripts/lab/main.py serve-dashboard --port 8734
```
本地 dashboard 路由:
- `/index.html`
- 根入口别名,默认进入概览视图
- `/overview/index.html`
- 总览入口,显示全局指标、最新运行、系统摘要与架构预览
- `/runs/index.html`
- 运行中心,显示运行队列、详情、证据、日志与原始 JSON
- `/systems/index.html`
- 系统中心,按板块查看系统覆盖并跳转到对应运行
- `/architecture/index.html`
- 架构中心,折叠查看控制面、数据层、授权边界与本地入口
- `/docs/index.html`
- 文档中心,集中访问功能文档、设计文档和镜像页
- `/data/index.html`
- 数据中心,集中访问 summary、runs、systems、profiles 等 JSON
- `/legacy/index.html`
- 旧版工作台回退入口
- `/docs/design-source.html`
- 设计来源与本地化说明
- `/docs/architecture-library.html`
- 当前架构库结构化镜像页
计划中的本机 cron 入口:
- [run-hourly.sh](/Users/x/websafe/scripts/intel/run-hourly.sh) 处理 KEV / 在野利用 / 极高优先级更新,并触发 hotlane 实证队列
- [run-nightly.sh](/Users/x/websafe/scripts/intel/run-nightly.sh) 处理常规增量同步、批量实证、dashboard 渲染和 PR
- [run-weekly-reconcile.sh](/Users/x/websafe/scripts/intel/run-weekly-reconcile.sh) 对齐最近 30 天更新,并重跑失败/阻塞任务
## 本地实证链路
每条 advisory 的自动链路固定为:
1. `registry/advisories/*.json` 选中 case。
2. `repro-map.yaml + repro-profiles/` 解析到 repro family / advisory profile。
3. `00-environments/catalog + profiles` 生成 compose 拓扑和靶站参数。
4. `scripts/lab/main.py run-case` 拉起环境、收集 baseline、执行受控攻击链。
5. 前端类 case 强制走 Playwright 浏览器回放,生成截图、DOM、console、network 证据。
6. 生成 `06-case-studies/generated-runs/<run-id>/` 报告和 `08-threat-intel/registry/runs/<run-id>.json`
7. 自动回写 registry、系统 INDEX、案例页和 dashboard。
## 实验边界
- `05-defense/` 下的配置样例用于实验观测、对抗演示、修复映射和反例说明,不应被误当成生产安全基线。
- `07-framework-security/` 下的系统页默认绑定 `lab-local``lab-public``authorized-third-party` 三类目标,并明确禁止未授权公网使用。
- `08-threat-intel/registry/` 是“所有具体 advisory”的正式载体;并非所有记录都强制生成独立 Markdown 页面。
- `08-threat-intel/generated/` 是人类可读摘要层,实际覆盖和路由以 `source-map.yaml``registry/` 为准。
## 使用前提
- 在运行任何工具前,先阅读 [授权模型](/Users/x/websafe/09-scope-and-targeting/authorization-model.md)。
- 对公网目标执行验证性测试时,必须能证明资产归属,或已获得明确授权。
- 优先采用只读探测、最小化注入、可回滚验证和可审计日志。
## 免责声明
本仓库仅用于授权安全测试、安全研究和教学实验。未经授权对第三方系统执行扫描、注入、爆破、绕过或枚举行为可能违法。