225 行
12 KiB
HTML
225 行
12 KiB
HTML
<!doctype html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>仓库入口镜像</title>
|
||
<style>
|
||
:root {
|
||
--bg: #08111f;
|
||
--panel: rgba(9, 18, 32, 0.9);
|
||
--border: rgba(137, 171, 214, 0.2);
|
||
--text: #f7fafc;
|
||
--muted: #9fb3ca;
|
||
--accent: #5eead4;
|
||
}
|
||
* { box-sizing: border-box; }
|
||
body {
|
||
margin: 0;
|
||
min-height: 100vh;
|
||
font-family: "IBM Plex Sans", "Segoe UI", sans-serif;
|
||
color: var(--text);
|
||
background:
|
||
radial-gradient(circle at top left, rgba(94, 234, 212, 0.12), transparent 26%),
|
||
linear-gradient(160deg, #050c16 0%, #091526 50%, #10233d 100%);
|
||
}
|
||
main {
|
||
max-width: 1080px;
|
||
margin: 0 auto;
|
||
padding: 32px 20px 40px;
|
||
}
|
||
.panel {
|
||
background: var(--panel);
|
||
border: 1px solid var(--border);
|
||
border-radius: 20px;
|
||
padding: 24px;
|
||
box-shadow: 0 24px 80px rgba(1, 7, 20, 0.45);
|
||
}
|
||
.actions {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
gap: 12px;
|
||
margin-bottom: 18px;
|
||
}
|
||
.chip {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 8px;
|
||
border-radius: 999px;
|
||
border: 1px solid var(--border);
|
||
padding: 10px 14px;
|
||
color: var(--text);
|
||
background: rgba(255,255,255,0.05);
|
||
text-decoration: none;
|
||
}
|
||
.chip:hover { border-color: rgba(94, 234, 212, 0.42); }
|
||
h1 {
|
||
margin: 0 0 12px;
|
||
font-family: "IBM Plex Serif", Georgia, serif;
|
||
font-size: clamp(1.8rem, 4vw, 3rem);
|
||
line-height: 1.08;
|
||
}
|
||
.meta {
|
||
color: var(--muted);
|
||
margin-bottom: 18px;
|
||
}
|
||
pre {
|
||
margin: 0;
|
||
padding: 20px;
|
||
overflow: auto;
|
||
border-radius: 16px;
|
||
border: 1px solid rgba(137, 171, 214, 0.12);
|
||
background: rgba(2, 8, 22, 0.84);
|
||
color: #d6e5f5;
|
||
font-family: "IBM Plex Mono", "SFMono-Regular", monospace;
|
||
font-size: 0.92rem;
|
||
line-height: 1.6;
|
||
white-space: pre-wrap;
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<main>
|
||
<div class="panel">
|
||
<div class="actions">
|
||
<a class="chip" href="/overview/index.html">返回工作台</a>
|
||
</div>
|
||
<h1>仓库入口镜像</h1>
|
||
<div class="meta">工作台内置镜像页:仓库定位、能力矩阵、入口和自动化入口。</div>
|
||
<pre># 授权攻防实验与研究知识库
|
||
|
||
> `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)。
|
||
- 对公网目标执行验证性测试时,必须能证明资产归属,或已获得明确授权。
|
||
- 优先采用只读探测、最小化注入、可回滚验证和可审计日志。
|
||
|
||
## 免责声明
|
||
|
||
本仓库仅用于授权安全测试、安全研究和教学实验。未经授权对第三方系统执行扫描、注入、爆破、绕过或枚举行为可能违法。
|
||
</pre>
|
||
</div>
|
||
</main>
|
||
</body>
|
||
</html>
|