# 跨站脚本 (XSS) 与 HTML 注入测试
## 目的
对 Web 应用执行全面的客户端注入漏洞评估,以识别 XSS 和 HTML 注入缺陷,演示用于会话劫持和凭据窃取的利用技术,并验证输入清理和输出编码机制。此技能支持跨存储型、反射型和基于 DOM 的攻击向量进行系统性的检测和利用。
## 输入 / 前置条件
### 所需访问权限
- 带有用户输入字段的目标 Web 应用 URL
- 用于请求分析的 Burp Suite 或浏览器开发者工具
- 用于存储型 XSS 测试的测试账户创建权限
- 开启 JavaScript 控制台的浏览器
### 技术要求
- 理解浏览器环境中的 JavaScript 执行
- 了解 HTML DOM 结构和操作
- 熟悉 HTTP 请求/响应头
- 理解 Cookie 属性和会话管理
### 法律前置条件
- 安全测试的书面授权
- 定义明确的范围,包括目标域名和功能
- 关于处理任何捕获的会话数据的协议
- 已建立的事件响应程序
## 输出 / 交付物
- 带有严重性分类的 XSS/HTMLi 漏洞报告
- 展示影响的概念验证 (PoC) 有效载荷
- 会话劫持演示 (受控环境)
- 包含 CSP 配置的修复建议
## 核心工作流
### 第一阶段:漏洞检测
#### 识别输入反射点
定位用户输入在响应中被反射的区域:
# 常见的注入向量
- 搜索框和查询参数
- 用户个人资料字段 (姓名、简介、评论)
- URL 片段和哈希值
- 显示用户输入的错误消息
- 仅有客户端验证的表单字段
- 隐藏的表单字段和参数
- HTTP 请求头 (User-Agent, Referer)
#### 基础检测测试
插入测试字符串以观察应用行为:
html
alert('XSS')

监控以下内容:
- 未经编码的原始 HTML 反射
- 部分编码 (某些字符被转义)
- 浏览器控制台中的 JavaScript 执行
- 检查器中可见的 DOM 修改
#### 确定 XSS 类型
**存储型 XSS 指标:**
- 输入持久化