跳转至

渗透测试流程与授权边界:一份可执行的 RoE

技术再强,没有授权就是攻击;报告再厚,没有复现步骤就无法修复。这篇给出可直接改用的规则文件(RoE)与交付标准。

1. 授权书必须写清的 8 项

项 内容 不写会怎样
委托方与测试方 公司全称、盖章 出事后无法证明关系
目标范围 域名、IP 段、App 包名、API 前缀 测到第三方系统
排除范围 第三方支付、云平台控制台、员工邮箱 越界
时间窗口 具体日期与时段 撞上大促或变更
允许手法 是否允许口令爆破、DoS、社工 争议
速率限制 每秒请求数、并发上限 打挂业务
数据处理 证据保存位置、加密、销毁时间 数据泄露责任
应急联系人 双方 7×24 电话、停止信号 出事找不到人

2. RoE 模板(可直接改)

一、目标
  In scope:
    - *.example.com(不含第三方托管页面)
    - 203.0.113.0/24 中由甲方持有的主机
    - iOS / Android 正式版 App(包名 com.example.*)
  Out of scope:
    - 支付网关、短信服务商、CDN 控制台
    - 员工个人设备、邮箱、办公网
    - 任何拒绝服务测试
    - 社会工程学

二、时间
    2026-09-01 至 2026-09-10,每日 22:00-06:00
    业务高峰期(每月 1 日 00:00-02:00)禁止主动扫描

三、手法与限制
    允许:端口扫描、目录枚举、漏洞验证、受限口令猜测
    禁止:批量拖库、写入后门、修改业务数据、持久化控制
    速率:≤ 20 req/s,单 IP 并发 ≤ 10

四、账号
    提供测试账号:user_a / user_b / admin_test
    禁止使用真实用户账号

五、数据处理
    证据存放于加密盘,仅保留必要片段
    测试结束后 7 日内销毁,出具销毁确认

六、应急
    甲方联系人:张三 138xxxx / 李四 139xxxx
    发现严重漏洞:1 小时内电话同步,暂停利用
    业务异常:立即停止全部主动测试

3. 执行流程与产出

阶段 关键动作 产出
前期 签授权、定 RoE、确认账号 授权书、RoE
信息收集 子域、端口、指纹、JS 接口 资产清单
漏洞验证 扫描 + 手工复现 漏洞列表(含请求响应)
影响验证 最小化证明,不扩大 证据链
报告 定级、修复建议 测试报告
复测 按原步骤验证 复测报告

4. 漏洞定级:用 CVSS 而不是拍脑袋

CVSS 3.1 基础向量示例:

AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H   → 9.8 Critical
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N   → 6.5 Medium
AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N   → 6.1 Medium
等级 CVSS 业务判断 修复时限
严重 9.0-10.0 可直接拿权限/资金/全量数据 24 小时
高危 7.0-8.9 越权核心数据、认证绕过 3 天
中危 4.0-6.9 有限信息泄露、需组合利用 2 周
低危 0.1-3.9 信息泄露、配置问题 下个版本

CVSS 只是基线。实际定级要叠加业务影响:同样是“读取他人订单”,含手机号地址的比只有金额的严重得多。

5. 证据链:让开发能一次复现

每个漏洞至少包含:

1. 位置:完整 URL / 接口 / 参数
2. 前置条件:账号、角色、需要的状态
3. 请求:原始 HTTP(含 Header 与 Body)
4. 响应:关键片段(隐去他人隐私)
5. 时间:精确到秒
6. 影响:能读到什么、能改什么、影响多少数据
7. 修复建议:具体到代码/配置
8. 复测方法:修复后如何验证

请求示例:

GET /api/orders/20002 HTTP/1.1
Host: api.example.com
Authorization: Bearer <userA-token>
X-Request-Id: 20260901-221033-001

HTTP/1.1 200 OK
Content-Type: application/json

{"code":0,"data":{"orderId":20002,"userId":1002,"phone":"138****1111"}}

只截取证明所需的最小数据,不要整段导出。

6. 报告结构

1. 摘要(给管理层)
   - 总体风险等级
   - 严重/高危数量
   - 一句话结论与建议
2. 测试范围与方法
3. 风险统计(按等级、按系统)
4. 漏洞详情(按等级排序,模板见上)
5. 修复建议汇总(按优先级)
6. 附录:资产清单、工具版本、测试时间线

管理层看第 1 节,开发看第 4 节,运维看第 5 节。三节都要能独立读懂。

7. 执行纪律

  • 使用独立测试账号,不碰真实用户
  • 证明越权时只看 1-2 条记录,不批量遍历
  • 不安装持久化后门,测试文件用完删除
  • 生产环境不做写操作、不做压力测试
  • 发现严重漏洞立即同步并暂停利用
  • 全程记录源 IP、时间、请求,便于溯源

8. 复测标准

□ 原始 payload 全部失效
□ 变体 payload(大小写、编码、二次编码)同样失效
□ 修复未引入新的越权/注入
□ 同类接口(其他模块)是否一并修复
□ 历史脏数据是否清理(存储型 XSS、二次注入)
□ 给出复测请求与响应

只测原始 payload 就出“已修复”,是复测最常见的失职。

9. 合规与法律

  • 未授权测试可能触犯《网络安全法》《数据安全法》《刑法》285/286 条
  • 等保 2.0 要求定期开展渗透测试与风险评估,报告需留存
  • 不泄露、不交易测试中获取的数据
  • 跨境业务注意数据出境评估
  • 第三方组件漏洞由谁负责,需在合同中写明

10. 常见失败原因

问题 后果 改进
范围只写“公司网站” 测到第三方,产生纠纷 用域名/IP/包名精确列举
没有时间窗 撞上大促,业务受损 明确时段与禁测窗口
报告只有截图没有请求 开发无法复现 强制附原始 HTTP
定级靠感觉 修复优先级错乱 用 CVSS + 业务影响
复测只跑原 payload 修复不彻底 变体与同类接口一起测
证据未销毁 数据泄露风险 约定销毁时间并出具确认

相关阅读