一个基于 Flask 构建的轻量级 Blind XSS(跨站脚本)收集器与 payload 服务器
一个使用 Flask 构建的轻量级 Blind XSS(跨站脚本)收集器和 payload 服务器。它提供一个 JavaScript payload,用于捕获受害者浏览器数据(cookies、localStorage、DOM 片段等),并将其转发到由 HTTP Basic Auth 保护的 SQLite 后端仪表盘。
/p.js 提供一个自包含的 JS payload,使用 sendBeacon 或 fetch/c(JSON/FormData)和 GET /c.gif(兼容 CSP 的像素信标)/events 列出捕获的事件,/events/<id>/view 显示完整详情/payloads 提供 14 种 XSS payload 变体以及自定义 JS 编辑器ADMIN_USER / ADMIN_PASSWORD 保护bxss.db 即可重新构建Dockerfile 和 docker-compose.yml# Set credentials
echo "ADMIN_USER=admin" > .env
echo "ADMIN_PASSWORD=your-admin-password" >> .env
# Build and run
docker compose up -d --build
仪表盘:http://127.0.0.1:8089/events(浏览器将提示输入 Basic Auth)
pip install -r requirements.txt
export ADMIN_USER="admin"
export ADMIN_PASSWORD="your-admin-password"
gunicorn -b 127.0.0.1:8080 --workers 2 --threads 4 wsgi:app
/payloads(通过身份验证后)以复制 XSS payload。/events 查看捕获的事件。| 方法 | 路径 | 描述 |
|---|---|---|
| GET | /p.js | XSS payload JavaScript |
| POST | /c | 接收来自 payload 的 JSON/FormData |
| GET | /c.gif | 像素信标(兼容 CSP) |
| 方法 | 路径 | 描述 |
|---|---|---|
| GET | /events | 最近 500 个事件 |
| GET | /events/<id> | 以 JSON 格式显示事件详情 |
| GET | /events/<id>/view | 以 HTML 格式显示事件详情 |
| GET/POST | /payloads | Payload 生成器 + 自定义 JS 编辑器 |
| 方法 | 路径 | 描述 |
|---|---|---|
| GET | /_healthz | 健康检查 |
| 变量 | 默认值 | 描述 |
|---|---|---|
ADMIN_USER | admin | 仪表盘用户名 |
ADMIN_PASSWORD | changeme | 仪表盘密码 |
DB_PATH | ./bxss.db | SQLite 数据库路径 |
MAX_BODY | 524288 | 收集器请求体最大大小(字节) |
RATE_LIMIT_COUNT | 60 | 每个窗口(每个 IP)的最大收集器请求数 |
RATE_LIMIT_WINDOW | 60 | 速率限制窗口(秒) |
LOG_LEVEL | INFO | Python 日志级别 |
自定义 JS 通过
/payloads管理页面进行编辑和存储(持久化在 SQLite 的settings表中),并追加到/p.js。它不再从文件中读取。
blindxss-lite/
├── wsgi.py # WSGI entry point
├── requirements.txt # Python dependencies
├── Dockerfile # Container image
├── docker-compose.yml # Compose config
├── .env # Credentials (don't commit)
└── app/
├── __init__.py # App factory, CORS, health check
├── config.py # Config + .env loader
├── db.py # SQLite layer
├── collectors.py # /p.js, /c, /c.gif
├── events.py # /events admin
├── payloads.py # /payloads admin
├── utils.py # Helpers + Basic Auth decorator
├── static/
│ └── style.css
└── templates/
├── events.html
├── event.html
└── payloads.html
document.cookiePayloads:

结果:

结果详情:

.env 绝不应提交到版本控制中。