the0x-pwn/lab-xss
GitHub: the0x-pwn/lab-xss
一套结构化的 XSS 漏洞实战训练靶场,通过难度递增的挑战帮助学习者在安全环境中练习跨站脚本攻击的识别与利用。
Stars: 0 | Forks: 0
# 🛡️ XSS Labs — 跨站脚本攻击训练环境
一个结构化的、注重实践的安全实验室,旨在帮助开发者、渗透测试人员和安全研究人员在安全可控的环境中理解并练习现实世界中的**跨站脚本攻击 (XSS)** 漏洞。
本项目模拟了现代 Web 应用程序中常见的不安全编码模式,并在多个 XSS 类别中提供了难度递增的挑战。
## 📌 概述
本实验室环境包含 **10 个精心设计的挑战**,涵盖了 Web 应用程序中最常见的 XSS 攻击面。
### 🎯 重点领域
* 真实应用程序中是如何引入 XSS 漏洞的
* 客户端和服务器端 sink 的行为方式
* 如何绕过输入清理和过滤
* 上下文(HTML、属性、JavaScript、SVG)如何影响漏洞利用
## 🧠 涵盖的 XSS 类别
| 类型 | 描述 |
| ------------------------------ | ----------------------------------------------------------------------------------- |
| **反射型 XSS** | 用户输入未经适当清理,直接返回在 HTTP 响应中 |
| **DOM 型 XSS** | 漏洞存在于客户端 JavaScript sink 中 |
| **绕过过滤型 XSS** | 针对 HTML/JS 过滤器的输入清理绕过技术 |
| **上下文型 XSS** | 取决于 HTML 属性、JS 字符串或 URL 上下文的注入 |
| **高级注入向量** | SVG、iframe 和基于 JavaScript URI 的注入技术 |
## 🗂️ 实验室结构
### 🟢 简单级别 — 基础知识
**重点:** 理解基本的反射和 DOM sink
| # | 实验室 | 类型 | 概念 |
| - | ------------------------------------------ | --------- | --------------------------- |
| 1 | 反射型 XSS — 基本输入反射 | 反射型 | 不安全的输出编码 |
| 2 | 反射型 XSS — 模板字符串注入 | 反射型 | JavaScript 模板上下文 |
| 3 | DOM 型 XSS — location.hash Sink | DOM | 客户端不安全解析 |
### 🟡 中等级别 — 过滤与 DOM 操作
**重点:** 绕过过滤器并滥用 DOM sink
| # | 实验室 | 类型 | 概念 |
| - | ----------------------------------------- | --------- | ------------------------- |
| 4 | HTML 标签过滤绕过 | 绕过 | 有缺陷的清理逻辑 |
| 5 | DOM 型 XSS — document.write Sink | DOM | 不安全的 DOM 渲染 |
| 6 | 带有 HTML 编码弱点的反射型 XSS | 反射型 | 部分编码绕过 |
### 🔴 困难级别 — 高级漏洞利用
**重点:** 上下文感知注入和受限环境
| # | 实验室 | 类型 | 概念 |
| -- | ------------------------------------------ | --------- | ------------------------------- |
| 7 | 带有字符限制的 JS 上下文 XSS | 反射型 | JavaScript 转义限制 |
| 8 | 属性上下文 XSS (href 注入) | 属性 | HTML 属性破坏 |
| 9 | 基于 SVG 的脚本注入 | SVG | 基于事件的执行向量 |
| 10 | iframe Data URI 注入 | iframe | sandbox 与基于 URI 的执行 |
## 🎯 学习目标
通过完成本系列实验室,您将获得以下方面的实践经验:
* 识别不同执行上下文中的 XSS 漏洞
* 理解浏览器如何解释 HTML、JS 和 DOM sink
* 利用薄弱或有缺陷的清理机制
* 绕过常见的基于黑名单的过滤器
* 针对受限环境构造 payload
* 认识现实世界中不安全的编码模式
## ⚠️ 免责声明
本项目严格**仅用于教育和研究目的**。
所有挑战均设计为在**本地或明确授权的环境中**运行。
严禁将这些实验室中展示的技术用于未经授权的系统。
对于不当使用本材料的行为,作者不承担任何责任。
## 🚀 快速开始
要开始探索实验室,请访问:
👉 [https://the0x-pwn.github.io/lab-xss/](https://the0x-pwn.github.io/lab-xss/)
### 推荐设置
* 现代 Web 浏览器(Chrome / Firefox)
* 启用开发者工具
* 对 HTML 和 JavaScript 有基本了解
## 🧪 推荐方法
* 从**简单 → 中等 → 困难**开始
* 使用开发者工具检查源代码和 DOM 变化
* 仔细分析输入反射点
* 在不同上下文中测试 payload 变体
* 理解每个 payload *为什么*有效,而不仅仅是*如何*有效
## 📚 建议的知识库
在尝试高级实验室之前,建议了解:
* HTML 注入基础知识
* JavaScript 执行上下文
* DOM 操作基础
* 浏览器编码行为(HTML / URL / JS 编码)
## 🏁 作者的话
本系列实验室旨在模拟常见于以下场景的现实世界不安全模式:
* 遗留 Web 应用程序
* 配置不当的清理库
* 具有不安全渲染逻辑的重客户端框架
目标是培养**直觉**,而不仅仅是漏洞利用技能。
标签:Web安全, XSS, 后端开发, 多模态安全, 安全教育, 安全靶场, 数据可视化, 漏洞情报, 蓝队分析