0x00 前言
XSS Platform 平台主要是用作验证跨站脚本攻击。该平台可以部署在本地或服务器环境中。我们可以使用 XSS Platfrom 平台搭建、学习或验证各种类型的 XSS 漏洞。
0x01 环境说明
HECS(云耀云服务器) |
xss platform |
Ubuntu 22.04 |
Nginx 1.24.0 |
MySQL 5.6.51 |
Pure-Ftpd 1.0.49 |
phpMyAdmin 5.2.1 |
PHP 7.2.34 |
0x02 准备工作
Ⅰ使用 OneinStack 为服务器安装 LNMP 一键包。
https://oneinstack.com/
Ⅱ在自动安装页面下,选择 Nginx 、 PHP 、 MySQL 、 Pure-FTPd 以及 phpMyAdmin 。选择好以后,复制安装命令到服务器中执行即可。
wget -c http://mirrors.oneinstack.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh --nginx_option 1 --php_option 7 --phpcache_option 1 --php_extensions zendguardloader,ioncube,sourceguardian,gmagick,fileinfo,imap,ldap,phalcon,yaf,redis,memcached,mongodb,swoole,xdebug --phpmyadmin --db_option 3 --dbinstallmethod 1 --dbrootpwd 9d7owghn --pureftpd --reboot
0x03 验证LNMP
Ⅰ经过漫长的等待, LNMP 安装完成。在服务器中会打印出相关的安装路径以及用户密码。
Nginx安装目录:/usr/local/nginx(Web服务器)数据库安装目录:/usr/local/mysql
数据库数据目录:/data/mysql
数据库用户:root
数据库密码:9d7owghnPHP安装目录:/usr/local/php
Opcache控制面板URL:http://192.168.0.53/ocp.php(PHP缓存控制面板)Pure-FTPd安装目录:/usr/local/pureftpd(FTP服务器)
创建FTP虚拟主机脚本:./pureftpd_vhost.shphpMyAdmin目录:/data/wwwroot/default/phpMyAdmin(MySQL管理工具)
phpMyAdmin控制面板URL:http://192.168.0.53/phpMyAdmin首页URL:http://192.168.0.53/(网站首页)
Ⅱ访问 xprober 监控,检查相应组件是否正常工作。
http://xxx.xxx.xxx.xxx/xprober.php
0x04 下载XSS Platform
Ⅰ下载 xss platform 项目。
https://github.com/78778443/xssplatform
Ⅱ这里使用 Xftp 工具,将 xssplatform 项目上传到网站根目录下。
/data/wwwroot/default
0x05 安装XSS Platform
Ⅰ打开网站首页安装 XSS Platform ,发现左下角显示 project/conf 文件夹不可写。这种情况是因为权限不够导致的。
http://xxx.xxx.xxx.xxx/
Ⅱ将 xssplatform 网站提权。
chmod -R 777 /data/wwwroot/default
Ⅲ再次访问网站首页,这时 “其他人” 也拥有了最高权限,便可以正常执行 XSS Platform 的安装了。
Ⅳ这里填写空白信息即可,也就是红框中的数据库密码、管理员以及管理员密码。数据库密码在之前安装 LNMP 时,服务器为我们打印出来了。关于管理员和管理员密码自定义设置即可。
Ⅴ成功导入数据信息后,点击进入首页。这时 XSS Platform 平台已搭建完成。
Ⅵ注意将 xssplatform 网站降权。
chmod -R 755 /data/wwwroot/default
0x06 配置伪静态页面
Ⅰ打开 nginx/conf 配置目录。如果找不到目录使用 find 查找 nginx.conf 文件即可。
cd /usr/local/nginx/conf
Ⅱ编辑 nginx.conf 文件,将以下代码插入到 default 中,对 URL 规则进行重写。保存并退出。
rewrite "^/([0-9a-zA-Z]{6})$" /index.php?do=code&urlKey=$1 last;
rewrite "^/do/auth/(\w+?)(/domain/([\w\.]+?))?$" /index.php?do=do&auth=$1&domain=$3 last;
rewrite "^/register/(.*?)$" /index.php?do=register&key=$1 last;
rewrite "^/register-validate/(.*?)$" /index.php?do=register&act=validate&key=$1 last;
关于伪静态页面配置的说明:
- Nginx配置方法:
rewrite "^/([0-9a-zA-Z]{6})$" /index.php?do=code&urlKey=$1 last; rewrite "^/do/auth/(\w+?)(/domain/([\w\.]+?))?$" /index.php?do=do&auth=$1&domain=$3 last; rewrite "^/register/(.*?)$" /index.php?do=register&key=$1 last; rewrite "^/register-validate/(.*?)$" /index.php?do=register&act=validate&key=$1 last;
- Apache配置方法:
<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] </IfModule>
Ⅲ重启 nginx 使配置生效。
nginx -s reload
0x07 XSS Platform访问
Ⅰ访问 XSS Platform 平台,输入刚刚创建的管理员和管理员密码执行登录。
Ⅱ登录成功如下显示。
0x08 配置公共模块
Ⅰ 打开第一个 XSS-1.sql 数据库文件,通过替换的方式将所有显示 xxx.xxx.xxx.xxx 的替换为自己的域名或 IP 。保存并退出。
Ⅱ打开第二个 XSS-2.sql 数据库文件,通过替换的方式将所有显示 xxx.xxx.xxx.xxx 的替换为自己的域名或 IP 。保存并退出。
Ⅲ为了可以通过公网访问 phpMyAdmin 管理页面,需要先进行降权。
chmod -R 755 /data/wwwroot/default
Ⅳ访问 phpMyAdmin 管理页面,输入刚刚在服务器中打印的账号密码。
http://xxx.xxx.xxx.xxx/phpMyAdmin/
Ⅴ选择 xssplatform 数据库。点击上方导入按钮,选择第一个 XSS-1 数据库。最后执行导入。
Ⅵ继续点击上方导入按钮,选择第二个 XSS-2 数据库。最后执行导入。
Ⅶ检查公共模块,所有模块均已成功导入。
Ⅷ配置完成后,需要执行提权。
chmod -R 777 /data/wwwroot/default
0x09 总结
至此XSS Platform环境搭建完成。由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。