cysec-don/XSS
GitHub: cysec-don/XSS
一款专为安全教学设计的 XSS 漏洞靶场,提供反射型、存储型和 DOM 型 XSS 的实操练习与渐进式挑战环境。
Stars: 0 | Forks: 0
# VulnLab - XSS 练习场
**作者:** Cysec Don ([cysecdon@gmail.com](mailto:cysecdon@gmail.com))
## ⚠️ 免责声明
**本应用是故意设计为存在漏洞的。** 它仅用于教育目的。请勿将此应用部署在公网面向外部的服务器或任何未经授权用户可以访问的网络中。运行此应用程序会使您的系统面临 XSS 攻击风险。仅在隔离的本地环境中用于安全培训和 研究。
使用本软件即表示您对任何损坏或滥用承担全部责任。作者对使用本应用程序进行的任何非法或未经授权的活动概不负责。
## 概述
VulnLab 是一个极简、设计美观的 Web 应用程序,其中包含多个故意的 XSS 漏洞。它提供了一个安全、可控的环境,让安全爱好者、开发者和学生能够:
- 练习识别和利用反射型、存储型和基于 DOM 的 XSS
- 了解不安全的编码实践如何导致真实的漏洞
- 测试过滤器绕过技术和 payload 工程
- 理解通过 XSS 进行的权限提升
- 与 BeEF (Browser Exploitation Framework) 集成以进行高级练习
该应用使用 **Node.js** 和 **Express** 构建,前端使用原生 HTML/CSS/JavaScript。没有框架,没有抽象——只有你可以看到、理解和利用的原始、存在漏洞的代码。
## 快速开始
### 选项 1: Docker (推荐)
最简单的入门方法。Docker 确保了一个干净、隔离的环境。
```
# Clone 仓库
git clone https://github.com/cysec-don/XSS.git
cd XSS
# 使用 Docker Compose 构建并运行
docker compose up -d
# Lab 现在运行在 http://localhost:3001
```
停止实验室:
```
docker compose down
```
查看日志:
```
docker compose logs -f
```
在进行更改后重新构建:
```
docker compose build --no-cache
docker compose up -d
```
### 选项 2: Docker (手动构建)
```
# 构建 Docker 镜像
docker build -t vulnlab-xss .
# 运行容器
docker run -d -p 3001:3001 --name vulnlab vulnlab-xss
# Lab 现在运行在 http://localhost:3001
```
停止:
```
docker stop vulnlab
docker rm vulnlab
```
### 选项 3: Node.js (本地)
```
# Clone 仓库
git clone https://github.com/cysec-don/XSS.git
cd XSS
# 安装依赖
npm install
# 启动服务器
npm start
# Lab 现在运行在 http://localhost:3001
```
## 应用程序结构
```
XSS/
├── server.js # Express server with vulnerable routes
├── package.json # Node.js project configuration
├── public/
│ └── css/
│ └── style.css # Application stylesheet (dark theme)
├── Dockerfile # Docker build configuration
├── docker-compose.yml # Docker Compose for easy deployment
├── .dockerignore # Docker build exclusions
├── .gitignore # Git exclusions
└── README.md # This file
```
## 存在漏洞的页面
### 1. 搜索页面 (反射型 XSS)
**URL:** `http://localhost:3001/`
搜索页面将 `q` 查询参数直接反映在 HTML 响应中,没有任何编码或过滤。这是经典的反射型 XSS 场景。
**如何利用:**
```
http://localhost:3001/?q=
```
**漏洞点:** `query` 值使用模板字符串插入到搜索输入框的 `value` 属性和结果标题中,且未进行转义。
### 2. 评论页面 (存储型 XSS)
**URL:** `http://localhost:3001/comments`
用户可以发布带有作者姓名和文本的评论。这两个字段都存储在内存中,并在没有任何 HTML 编码的情况下显示给所有访问者。这是一个经典的存储型 XSS 漏洞。
**如何利用:** 使用以下任何 payload 发布评论:
| Payload | 描述 |
|---------|-------------|
| `` | 基本的 script 标签 |
| `
` | Image onerror 处理程序 |
| `
标签:BeEF, CISA项目, CMS安全, CSS, CTF训练, Docker, DOM型XSS, Express, GNU通用公共许可证, Go语言工具, HTML, JavaScript, MITM代理, Node.js, Web安全, XML 请求, XSS, 代码安全, 反射型XSS, 多模态安全, 存储型XSS, 安全开发, 安全测试, 安全练习, 安全防御评估, 攻击性安全, 故意漏洞, 数据可视化, 漏洞修复, 漏洞情报, 漏洞枚举, 漏洞靶场, 爬虫, 网络安全, 网络安全培训, 网络安全实验, 自定义脚本, 蓝队分析, 请求拦截, 跨站脚本攻击, 防御检测, 隐私保护