XSS-Platform 源码部署实战:PHP 7.4 + Apache 环境 5 步配置避坑指南
XSS-Platform 源码部署实战:PHP 7.4 + Apache 环境 5 步配置避坑指南
在网络安全领域,XSS(跨站脚本攻击)是最常见的安全漏洞之一。对于安全研究人员和渗透测试人员来说,搭建一个私有的 XSS 平台不仅能够保护测试数据的安全,还能提供更灵活的测试环境。本文将详细介绍如何在 PHP 7.4 + Apache 环境下高效部署 XSS-Platform,并提供关键配置清单和常见问题解决方案。
1. 环境准备与源码获取
在开始部署之前,我们需要确保基础环境已经就绪。对于 PHP 7.4 + Apache 的组合,推荐使用以下配置:
- 操作系统:Ubuntu 20.04 LTS 或 CentOS 8(Windows 用户可使用 WSL2)
- Web 服务器:Apache 2.4.x
- 数据库:MySQL 5.7+ 或 MariaDB 10.3+
- PHP 版本:7.4(必须包含以下扩展)
- pdo_mysql
- mbstring
- gd
- openssl
源码获取方式: 目前 GitHub 上有多个维护良好的 XSS-Platform 分支,推荐使用以下两个版本:
- thickforest/xss_platform (PHP 7.x 适配版)
- 78778443/xssplatform (带中文说明文档)
提示:避免使用百度网盘等第三方来源的源码,可能存在安全隐患或被篡改的风险。
2. 数据库配置与初始化
数据库是 XSS-Platform 的核心组件,正确的配置能避免后续出现数据存储问题。以下是详细步骤:
登录 MySQL/MariaDB 创建专用数据库:
CREATE DATABASE xssplatform CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'xssuser'@'localhost' IDENTIFIED BY 'StrongPassword123!'; GRANT ALL PRIVILEGES ON xssplatform.* TO 'xssuser'@'localhost'; FLUSH PRIVILEGES;导入初始数据结构:
mysql -u xssuser -p xssplatform < xssplatform.sql
关键参数说明表:
| 参数 | 推荐值 | 说明 |
|---|---|---|
| 字符集 | utf8mb4 | 支持完整的 Unicode 字符 |
| 排序规则 | utf8mb4_unicode_ci | 不区分大小写的 Unicode 排序 |
| 数据库用户权限 | ALL PRIVILEGES | 需要完整的读写权限 |
3. 配置文件深度定制
XSS-Platform 有两个关键配置文件需要修改:config.php和authtest.php。以下是必须修改的参数清单:
config.php 关键配置:
// 数据库连接配置 define('DB_HOST', 'localhost'); define('DB_USER', 'xssuser'); define('DB_PASS', 'StrongPassword123!'); define('DB_NAME', 'xssplatform'); // 平台基础配置 define('URL', 'http://yourdomain.com/xss'); // 必须与实际访问路径一致 define('REGISTER', 'normal'); // 初始设置为 normal 以便注册管理员 define('INVITE', 'off'); // 初始关闭邀请码功能authtest.php 修改要点:
- 将所有
http://xsser.me替换为你的实际域名 - 确保 URL 路径结尾没有斜杠
/
注意:完成管理员账户注册后,需要将
REGISTER改回invite并开启INVITE以提高安全性。
4. Apache 环境专项优化
Apache 的配置直接影响 XSS-Platform 的可用性和安全性。以下是针对 XSS-Platform 的优化配置:
启用必要的模块:
sudo a2enmod rewrite sudo a2enmod headers sudo systemctl restart apache2虚拟主机配置示例:
<VirtualHost *:80> ServerName xss.yourdomain.com DocumentRoot /var/www/xssplatform <Directory /var/www/xssplatform> Options FollowSymLinks AllowOverride All Require all granted DirectoryIndex index.php </Directory> ErrorLog ${APACHE_LOG_DIR}/xss_error.log CustomLog ${APACHE_LOG_DIR}/xss_access.log combined </VirtualHost>解决 403 错误的决策树:
- 检查目录权限:
chown -R www-data:www-data /var/www/xssplatform - 确认 SELinux/AppArmor 未阻止访问
- 检查 Apache 的
Require all granted配置 - 验证
AllowOverride All是否生效
- 检查目录权限:
5. 伪静态配置与功能验证
伪静态规则是 XSS-Platform 正常工作的关键。以下是针对 Apache 的优化配置:
.htaccess 完整配置:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^([0-9a-zA-Z]{6})$ index.php?do=code&urlKey=$1 [L] RewriteRule ^do/auth/(\w+?)(/domain/([\w\.]+?))?$ index.php?do=do&auth=$1&domain=$3 [L] RewriteRule ^register/(.*?)$ index.php?do=register&key=$1 [L] RewriteRule ^register-validate/(.*?)$ index.php?do=register&act=validate&key=$1 [L] RewriteRule ^login$ index.php?do=login [L] # 防止直接访问 JS 文件 RewriteCond %{REQUEST_URI} \.js$ RewriteRule ^ - [F] </IfModule>平台功能验证清单:
- 注册新用户并登录
- 创建测试项目并生成 XSS 代码
- 在测试页面触发 XSS 代码
- 验证平台是否能正确接收和显示测试结果
- 检查管理员功能(用户管理、项目管理等)
高级配置与安全加固
完成基础部署后,建议进行以下安全加固:
文件权限控制:
chmod 750 /var/www/xssplatform/ chmod 640 /var/www/xssplatform/config.php定期备份策略:
# 数据库备份 mysqldump -u xssuser -p xssplatform > xss_backup_$(date +%F).sql # 代码备份 tar czvf xss_code_$(date +%F).tar.gz /var/www/xssplatformHTTPS 强制启用:
<VirtualHost *:443> SSLEngine on SSLCertificateFile /path/to/cert.pem SSLCertificateKeyFile /path/to/privkey.pem # 其他配置与 HTTP 版本相同 </VirtualHost>
在实际使用中,我发现最容易被忽视的问题是.htaccess文件的路径配置。特别是在子目录部署时,必须确保RewriteBase设置正确,否则生成的 XSS 链接将无法正常工作。建议在每次修改配置后,使用curl -v测试 URL 重定向是否按预期工作。