# 档案模板

复制即可用。三个模板：单漏洞 README、根索引、附录。

---

## 1. 单漏洞 `NN-名称/README.md`

````markdown
# NN · 漏洞标题（一句话说清本质）

## 基本信息

| 项 | 内容 |
|---|---|
| 编号 | NN |
| 等级 | 严重 / 高危 / 中危 / 低危 / 信息 |
| 状态 | 已确认 / 待验证 / 已修复 / 误报 / 已接受风险 |
| 发现时间 | YYYY-MM-DD（目标侧时间） |
| 影响地址 | 写入：`POST /api/xxx`；读取：`GET /api/yyy`；展示：`/页面路径` |
| 前置条件 | 攻击者需要什么（账号/验证码/后台权限）；受害者需要做什么 |
| 影响对象 | 哪些用户、哪些页面、数据规模 |

## 一句话结论

用外行能懂的话说清楚：什么问题、导致什么后果。

## 影响范围

- 具体页面/接口清单
- 受影响的数据类型与规模（行数、字段）
- 是否有入口放大（首页推荐位、自动加载等）

## 攻击手法与复现

### 1. 前置准备

```text
账号：xxx / 已脱敏
工具：浏览器控制台 / curl
```

### 2. 发起请求

```http
POST /api/xxx HTTP/1.1
Host: target
Content-Type: application/x-www-form-urlencoded

id=1&type=4&content=正常业务文案
```

### 3. 触发结果

```text
响应 / DOM / 数据库回显
```

### 4. 关键判定点

说明"哪一步能证明这不是误判"。

## 危害说明

- 对业务：数据泄露 / 内容篡改 / 品牌与 SEO 影响
- 对用户：账号接管 / 隐私泄露 / 钓鱼

## 判定标准

1. …（可复现的最小条件）
2. …（必须排除的误判情形）

## 证据

| 项 | 内容 |
|---|---|
| 请求 | 完整 URL / 方法 / 关键参数 |
| 响应 | 关键片段（脱敏） |
| 响应头 | `Cache-Control`、`cf-cache-status`、`Server` 等 |
| 时间 | 目标侧时间戳 |
| 截图 | `evidence/xxx.png` |

## 修复建议

1. 优先修（能直接消除风险的）
2. 其次（加固）
3. 最后（监控与审计）

## 修复验证方法

1. 按上面步骤重放，应返回 xxx
2. 正常功能不受影响
3. 换会话/绕缓存再验一次

## 备注与限制

- 哪些没验证、为什么
- 与其它编号的关系（组合链）
- 测试产生的遗留物与清理状态
````

---

## 2. 根 `README.md`

````markdown
# <目标名称>（domain）漏洞档案

> 本文档目录用于归档对 `www.target.com` 的授权安全测试结果。
> **强制规则：每确认一个漏洞，必须在本目录下新建独立文件夹并补齐说明文档，不允许只在聊天里说、不落盘。**

---

## 一、强制规范（每次必须执行）

1. **一漏洞一文件夹**：目录名 `NN-简短名称`，`NN` 从 01 递增，不复用、不跳号。
2. **文件夹内必须包含**：
   ```
   NN-漏洞名称/
   ├── README.md        # 说明文档（必备）
   ├── payload/         # 载荷、复现脚本（必备，至少一个文件）
   └── evidence/        # 截图、响应片段（可选，但 README 必须可复现）
   ```
3. **README 必备章节**：基本信息 / 一句话结论 / 影响范围 / 攻击手法与复现 / 危害说明 / 判定标准 / 证据 / 修复建议 / 修复验证方法 / 备注与限制。
4. **状态枚举**：`已确认` / `待验证` / `已修复` / `误报` / `已接受风险`
5. **等级枚举**：`严重` / `高危` / `中危` / `低危` / `信息`
6. **索引必须同步**：新增、状态变更、修复完成后，更新「索引表」与「变更记录」。
7. **证据纪律**：不伪造、不夸大；未验证的写"未验证"；PII 脱敏（`166****7271`）；遗留物必须登记。
8. **测试前置**：仅限已授权目标；禁止破坏性操作；生产环境优先测试账号。

---

## 二、目录结构

```
漏洞档案/
├── README.md
├── 附录-已测试未发现问题.md
├── 01-xxx/
├── 02-xxx/
└── ...
```

---

## 三、索引表

| 编号 | 漏洞名称 | 等级 | 状态 | 影响地址 | 文档 |
|---|---|---|---|---|---|
| 01 | xxx | 高危 | 已确认 | `/path` | [README](01-xxx/README.md) |

---

## 四、变更记录

| 日期 | 变更 |
|---|---|
| YYYY-MM-DD | 建立档案目录与规范；归档 01–NN |
| YYYY-MM-DD | 第 N 轮扩测：新增 NN（xxx）；复测 NN 仍存在 |
````

---

## 3. `附录-已测试未发现问题.md`

````markdown
# 附录 · 已测试未发现问题

用途：记录"排查过但不成立"的项，避免重复劳动；也记录撤回的错误结论。

## 1. 测试副作用登记

| 项目 | 说明 |
|---|---|
| 测试账号积分 | 变化前 → 变化后 |
| 测试文章/评论 | ID、时间、内容摘要、删除状态 |
| 上传文件 | 落点路径、数量、是否可删 |
| 缓存污染 | 被缓存的 URL 列表、是否需要 Purge |
| 待清理 | 明确列出"还在线上"的东西 + 清理条件 |

## 2. 第 N 轮扩测（YYYY-MM-DD）

| 测试 | 结果 |
|---|---|
| 某参数注入 | 无回显、布尔对照无差异 → 不成立 |
| 某上传点 | 后缀白名单生效，双后缀被拒 → 不可执行 |
| 某隐藏页 | 404 / 500 且无敏感信息 |

**更正说明**：某结论此前误判为 xxx，用 xxx 复测后确认不成立，**结论撤回**。
````

---

## 4. 写法要求

- **标题写本质**，不写"某接口存在漏洞"这种空话；
- **复现步骤要能粘**：请求、参数、载荷原样给出，别写"构造一个恶意请求"；
- **证据要能自证**：响应片段 + 时间 + 会话状态（登录/匿名）；
- **不要美化**：没打穿就写没打穿，打了一半写清楚卡在哪；
- **组合链单独标注**：`23 → 24 → 25 → 28`，让开发知道先修哪个。
