Web应用渗透测试方案
| 项目 | 内容 |
|---|---|
| 文档名称 | Web应用渗透测试方案 |
| 文档版本 | V1.0 |
| 编制日期 | 2026-09-28 |
| 文档密级 | 商密-内部 |
| 适用对象 | 甲方业务系统Web应用安全测试 |
1. 项目概述
1.1 项目背景
为全面掌握甲方Web应用系统的安全状况,发现潜在安全漏洞及风险隐患,乙方安全团队依据行业标准测试方法论,对甲方指定Web应用系统开展渗透测试工作。本方案明确测试范围、方法、流程与交付物,作为双方执行依据。
1.2 测试目标
-
发现Web应用存在的安全漏洞,包括但不限于注入、跨站脚本、越权访问、敏感信息泄露、逻辑漏洞等;
-
评估漏洞的实际危害等级与可利用性;
-
提供可操作的修复建议,协助甲方完成漏洞闭环;
-
输出标准化渗透测试报告,作为安全验收依据。
1.3 测试依据
本次测试方法论参考以下行业标准与最佳实践(非合规对标):
| 编号 | 标准/指南 | 说明 |
|---|---|---|
| 1 | OWASP Testing Guide v4.2 | Web应用安全测试指南 |
| 2 | OWASP Top 10:2021 | Web应用十大安全风险 |
| 3 | PTES(Penetration Testing Execution Standard) | 渗透测试执行标准 |
| 4 | CVSS 3.1 | 漏洞评分标准 |
2. 测试范围
2.1 纳入范围
| 序号 | 测试对象 | 类型 | 备注 |
|---|---|---|---|
| 1 | 待测试Web系统域名/IP | Web应用 | 甲方提供,见附录A |
| 2 | 对应API接口 | REST/GraphQL等 | 含移动端后端API |
| 3 | Web中间件及运行环境 | 基础设施层 | 仅限Web服务层面 |
2.2 排除范围
以下内容不在本次渗透测试范围内,如需覆盖可另行协商:
-
源代码安全审计(白盒);
-
移动客户端APP逆向与本地安全测试;
-
内网横向渗透与域渗透;
-
物理安全与社会工程学测试;
-
DDoS压力测试(可另行安排专项压测);
-
第三方云平台基础设施安全评估。
2.3 测试前提条件
| 序号 | 前提条件 | 责任方 |
|---|---|---|
| 1 | 提供测试目标清单(域名、IP、功能说明) | 甲方 |
| 2 | 提供至少2个有效测试账号(普通用户+管理员) | 甲方 |
| 3 | 确认测试时间窗口,避开业务高峰 | 双方 |
| 4 | 确认测试环境与生产环境隔离或提供独立测试环境 | 甲方 |
| 5 | 出具书面授权书(见附录B授权模板) | 甲方 |
| 6 | 提供接口文档/功能说明(如有,便于高效测试) | 甲方 |
3. 测试方法论
3.1 总体方法论
本次测试采用 PTES七阶段方法论 结合 OWASP Testing Guide 执行,覆盖黑盒测试全流程:
┌─────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ 前置交互 │ → │ 信息收集 │ → │ 威胁建模 │ → │ 漏洞分析 │ → │ 漏洞利用 │ → │ 深度利用 │ → │ 报告阶段 │
└─────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘
3.2 各阶段说明
阶段一:前置交互(Pre-engagement Interactions)
-
确认测试范围、授权、时间窗口;
-
确认测试账号与权限层级;
-
约定紧急联系人及应急响应机制;
-
约定数据安全与保密要求。
阶段二:信息收集(Intelligence Gathering)
被动信息收集:
-
域名与子域名枚举(DNS记录、证书透明度日志、搜索引擎);
-
Web指纹识别(Server类型、框架、CMS、中间件版本);
-
端口与服务探测(仅限授权IP);
-
历史URL与缓存页面收集(Wayback Machine等);
-
敏感信息泄露探测(Git仓库、备份文件、配置文件、API文档泄露)。
主动信息收集:
-
目录与文件爆破(基于字典的路径枚举);
-
API接口发现与参数枚举;
-
页面爬取与功能点梳理;
-
JavaScript文件分析(提取接口、密钥、隐藏参数)。
阶段三:威胁建模(Threat Modeling)
-
梳理业务功能与数据流;
-
识别关键资产与信任边界;
-
基于业务场景构建攻击面矩阵;
-
确定测试优先级排序。
阶段四:漏洞分析(Vulnerability Analysis)
依据OWASP Testing Guide执行系统性测试,详见[第4节 测试项清单](#第4节 测试项清单)。
阶段五:漏洞利用(Exploitation)
-
对已发现的漏洞进行实际利用验证;
-
评估漏洞的真实危害与影响范围;
-
验证漏洞链组合利用的可能性。
阶段六:深度利用(Post-Exploitation)
-
评估漏洞的实际业务影响(数据泄露量级、权限提升幅度);
-
验证纵向/横向越权范围;
-
不进行破坏性操作,不植入持久化后门。
阶段七:报告(Reporting)
-
漏洞详情记录(位置、类型、复现步骤);
-
危害等级评定(CVSS 3.1);
-
修复建议编写;
-
交付渗透测试报告。
4. 测试项清单
4.1 OWASP Top 10:2021 覆盖矩阵
| OWASP分类 | 风险名称 | 测试项 | 测试方法 |
|---|---|---|---|
| A01 | 访问控制失效 | 越权访问(水平/垂直)、未授权访问、强制浏览、IDOR | 不同账号交叉请求、修改URL参数/请求体遍历ID |
| A02 | 加密机制失效 | 明文传输、弱TLS配置、敏感数据明文存储/返回 | 抓包检查响应体敏感字段、SSL Labs评估 |
| A03 | 注入 | SQL注入、命令注入、LDAP注入、XML注入、SSTI、XPath注入 | 参数化输入点fuzz、基于报错/布尔/时间盲注验证 |
| A04 | 不安全设计 | 业务逻辑缺陷、竞态条件、批量操作滥用 | 业务流程逆向分析、并发请求测试 |
| A05 | 安全配置错误 | 默认凭据、目录列出、错误信息泄露、不必要的HTTP方法、缺失安全头 | 目录扫描、报错触发、响应头分析 |
| A06 | 易受攻击和过时的组件 | 框架/中间件/库版本漏洞 | 指纹识别+版本比对CVE |
| A07 | 身份识别和认证失效 | 弱密码策略、会话固定、会话超时、多因素绕过、暴力破解 | 登录流程分析、会话Token分析、认证绕过测试 |
| A08 | 软件和数据完整性失效 | 不安全反序列化、未签名更新、CI/CD管道安全 | 反序列化点探测、完整性校验检查 |
| A09 | 安全日志和监控失效 | 缺乏关键操作日志、无告警机制 | 操作后检查日志记录情况 |
| A10 | 服务端请求伪造(SSRF) | 内网探测、云元数据读取、协议利用 | 参数中注入内网/云元数据URL验证 |
4.2 附加测试项
以下测试项虽不在OWASP Top 10直接分类,但在实际Web渗透中高频出现,纳入本次测试:
| 序号 | 测试项 | 说明 |
|---|---|---|
| 1 | XSS(反射型/存储型/DOM型) | 覆盖A03范畴,单独列出强调 |
| 2 | CSRF(跨站请求伪造) | 检查关键操作的Token/SameSite机制 |
| 3 | 文件上传漏洞 | 类型绕过、路径穿越、解析漏洞 |
| 4 | 文件下载/读取漏洞 | 任意文件读取、路径遍历 |
| 5 | 验证码安全 | 验证码可预测/复用/空验证码绕过 |
| 6 | 短信/邮件轰炸与滥发 | 频率限制、参数篡改 |
| 7 | 接口限流与防刷缺失 | 批量请求测试 |
| 8 | JWT/Token安全 | 算法降级、签名缺失、敏感信息载荷 |
| 9 | CORS配置错误 | 跨域凭据携带、Origin反射 |
| 10 | WebSocket安全 | 认证缺失、注入 |
4.3 测试深度说明
| 深度等级 | 说明 | 本次适用 |
|---|---|---|
| L1 基础测试 | 自动化扫描 + 人工验证 | --- |
| L2 标准测试 | 自动化扫描 + 全面人工测试 | ✅ |
| L3 深度测试 | L2 + 逻辑漏洞深挖 + 组合利用链 | ✅ |
5. 测试工具
5.1 工具列表
| 类别 | 工具名称 | 用途 | 备注 |
|---|---|---|---|
| 代理抓包 | Burp Suite Professional | 请求拦截/重放/扫描 | 核心工具 |
| 代理抓包 | mitmproxy | 补充抓包/脚本化处理 | 可选 |
| 漏洞扫描 | Burp Active Scan | 自动化漏洞发现 | --- |
| 漏洞扫描 | Nikto / wpscan | Web服务器/CMS专项扫描 | 按需 |
| 目录扫描 | ffuf / gobuster | 目录与文件枚举 | --- |
| 子域名 | subfinder / amass | 子域名收集 | 被动 |
| 指纹识别 | Wappalyzer / whatweb | Web指纹识别 | --- |
| SQL注入 | sqlmap | SQL注入自动化利用 | 仅验证已发现注入点 |
| XSS | XSStrike / dalfox | XSS检测 | 辅助 |
| 浏览器 | Firefox + DevTools | 手动测试与调试 | --- |
| JS分析 | LinkFinder | JS文件接口提取 | --- |
| 网络探测 | Nmap | 端口与服务探测 | 仅限授权IP |
5.2 工具使用原则
-
所有扫描类工具限制并发速率,避免影响业务正常运转;
-
自动化扫描在非业务高峰时段执行;
-
利用类操作(sqlmap、漏洞利用)仅对已确认漏洞点执行,不做广撒网式盲打;
-
不使用任何具有破坏性的漏洞利用Payload。
6. 测试流程与时间安排
6.1 阶段划分
| 阶段 | 工作内容 | 工期(工作日) | 责任方 |
|---|---|---|---|
| 第一阶段 | 前置交互与授权确认 | 1 | 双方 |
| 第二阶段 | 信息收集与资产梳理 | 1 | 乙方 |
| 第三阶段 | 自动化扫描+人工漏洞测试 | 3-5 | 乙方 |
| 第四阶段 | 深度利用与影响评估 | 1-2 | 乙方 |
| 第五阶段 | 漏洞复测(甲方修复后) | 1-2 | 乙方 |
| 第六阶段 | 报告编写与交付 | 1-2 | 乙方 |
| 合计 | 8-13个工作日 |
6.2 测试时间窗口
-
测试执行时间:建议工作日 10:00-18:00,避开业务高峰;
-
如需夜间测试,双方提前一天约定;
-
测试期间乙方保持在线,甲方指定对接人实时响应。
6.3 流程图
甲方授权 → 范围确认 → 信息收集 → 漏洞发现 → 漏洞验证 → [阶段性同步]
→ 深度利用 → 影响评估 → 甲方修复 → 漏洞复测 → 报告交付 → 项目闭环
7. 风险控制
7.1 测试风险识别
| 风险项 | 等级 | 控制措施 |
|---|---|---|
| 扫描导致服务异常 | 中 | 限速扫描、避开高峰、实时监控 |
| 漏洞利用导致数据损坏 | 高 | 仅读取验证,不执行写操作;提前备份 |
| 测试账号越权影响真实用户 | 中 | 使用独立测试账号与测试环境 |
| 测试数据泄露 | 高 | 测试数据仅本地留存,不外传;NDN保密 |
| 误判生产事故 | 低 | 测试前与运维同步,异常即停 |
7.2 应急响应
-
即刻停止条件:测试过程中出现服务不可用、数据异常、甲方告警;
-
应急联系人:双方各指定1名紧急联系人,7×24可达;
-
回退机制:发现高风险立即停止相关测试项,通知甲方确认后再决定是否继续;
-
数据销毁:项目结束后,乙方在15个工作日内销毁测试过程中获取的所有数据(漏洞证据、抓包数据、截图等),销毁记录留存。
8. 漏洞评级标准
采用 CVSS 3.1 评分体系,结合业务影响综合评定:
| 等级 | CVSS区间 | 说明 | 处置时效建议 |
|---|---|---|---|
| 严重 | 9.0-10.0 | 可直接获取系统控制权/大批量敏感数据泄露 | 24小时内 |
| 高危 | 7.0-8.9 | 可获取敏感数据/越权/远程代码执行 | 7天内 |
| 中危 | 4.0-6.9 | 有限信息泄露/需特定条件触发 | 15天内 |
| 低危 | 0.1-3.9 | 信息泄露/影响有限 | 30天内 |
| 信息 | 0.0 | 安全加固建议 | 视情况 |
9. 交付物
| 序号 | 交付物 | 格式 | 交付节点 |
|---|---|---|---|
| 1 | 渗透测试方案(本文档) | Markdown/PDF | 项目启动前 |
| 2 | 阶段性漏洞同步清单 | 表格 | 测试执行中(实时/按日同步) |
| 3 | 渗透测试报告(正式版) | 测试完成后 | |
| 4 | 漏洞复测报告 | 复测完成后 |
9.1 报告内容结构
渗透测试报告包含以下章节:
-
测试概述:范围、时间、方法、人员;
-
测试结果摘要:漏洞数量统计、等级分布、总体安全评价;
-
漏洞详情:逐项列出------
-
漏洞名称与等级
-
漏洞位置(URL/参数)
-
漏洞描述
-
复现步骤(含截图/请求响应)
-
危害分析
-
修复建议(具体到代码/配置层面)
-
-
安全加固建议:架构层面、配置层面、流程层面的整体建议;
-
附录:测试工具清单、测试账号说明。
10. 保密与安全承诺
-
乙方承诺严格遵守甲方信息安全管理制度,测试过程中获取的所有信息仅用于本次测试目的;
-
测试数据在项目结束后按规定销毁,不留存、不外传;
-
乙方人员签署保密协议(NDA),承担保密义务;
-
如因乙方原因导致数据泄露,乙方承担相应法律责任;
-
测试期间如发现涉及用户个人隐私数据(PII),乙方仅记录数据存在性与字段类型,不记录具体数据值。
11. 双方职责
11.1 甲方职责
-
提供准确的测试目标清单与功能说明;
-
提供测试账号及必要权限;
-
出具书面授权;
-
测试期间保持对接人在线响应;
-
及时修复已报告漏洞并配合复测。
11.2 乙方职责
-
按本方案约定范围、方法、时间执行测试;
-
保障测试过程安全可控,不影响业务正常运行;
-
如实报告测试发现,不夸大不隐瞒;
-
按时交付各阶段交付物;
-
对测试数据严格保密并按时销毁。
附录A:测试目标确认表
| 序号 | 系统/应用名称 | 访问地址(域名/IP) | 测试账号 | 账号权限 | 备注 |
|---|---|---|---|---|---|
| 1 | |||||
| 2 | |||||
| 3 |
附录B:授权书模板
授权书
兹授权乙方安全团队(团队名称:______)于 ______年____月____日 至 ______年____月____日 期间,对以下系统开展Web应用渗透测试:
授权范围:
-
测试目标:______
-
测试类型:Web应用渗透测试
-
测试方法:依据《Web应用渗透测试方案 V1.0》
授权声明:
-
甲方确认上述测试目标已在授权范围内,乙方在上述范围内开展的测试行为已获甲方书面授权;
-
乙方应严格遵守测试方案中的安全控制措施;
-
本授权书自双方签字盖章之日起生效。
| 甲方 | 乙方 | |
|---|---|---|
| 授权人签字 | ||
| 联系电话 | ||
| 日期 |