使用docker快速搭建xssPlatform测试平台实践

汤青松

一、背景

笔者之前给一些开发团队多次做Web安全开发培训,为了让培训的学员能够理解XSS原理和XSS的危害,将xssPlatform进行了更新,之前一直放在GitHub中;发现关注的人越来越多,很多人在安装的过程中遇到问题不知道怎么处理,为了简化安装步骤,笔者将xssPlatform封装到了docker镜像当中,同时编写了一套安装文档,希望到时候给学员和读者参考。

二、操作实践

  1. 数据库搭建
  2. xssPlatform搭建
  3. 安装配置

三、数据库搭建

xssPlatform渗透测试系统使用的数据库是MySQL,因此笔者需要先安装mysql数据库服务,为了简化安装,便直接使用了docker方式进行,参考命令如下

docker run --name mysqlserver -e MYSQL_ROOT_PASSWORD=123 -d -i -p 3309:3306  mysql:5.6

启动之后,可以使用宿主机的MySQL管理软件连接测试,如下图所示

image

四、xssPlatform搭建

在安装完MySQL服务之后,便可以安装xssPlatform系统了,笔者已经将所需PHP和nginx环境封装好了,因此只需下载镜像运行即可

4.1 运行容器

在运行容器时候需要考虑两个问题,首先需要将web端口映射出来宿主机才可以访问,第二个是需要考虑此容器要能访问得到mysql服务,因此参考命令如下:

docker run --name xssPlatform_test --link mysqlserver:db  -d -i  -p 8888:80   daxia/websafe:latest

4.2 启动服务

使用vim编辑器编辑hosts文件,在里面增加一条host记录,Linux或Mac执行命令如下

vim /etc/hosts

因为这个docker镜像里面还封装了permeate,默认访问的是permeate系统,所以一定要加上此记录才能访问到xssPlatform,参考内容如下

127.0.0.1       xss.localhost

在启动容器之后,通过浏览器访问http://xss.localhost:8888/不能打开,原因是因为容器里的nginx服务和PHP服务都还未启动,启动的命令参考如下所示:

docker exec xssPlatform_test zsh -c "php /root/start.php"

此时再通过浏览器访问http://xss.localhost:8888/,便可以打开安装协议页面,如下图所示

4.3 系统安装

安装过程比较简单,但在填写数据库地址的时候需要注意,我们已经将mysqlserver链接到了xssPlatform容器当中,此时数据库地址直接填写db即可,数据库密码笔者在启动MySQL容器时设置的为123,这里也填写123,参考如下图所示

通过前面添加虚拟主机和添加host解析之后,便可以通过浏览器访问此平台,URL地址为http://xss.localhost:8888/,打开后会自动跳转到安装界面,如下图所示

image

点击 我同意此协议按钮之后,将跳转到第二步的填写配置信息界面,在此界面需要填写数据库信息,和管理员账号信息,如下图所示

image

如果数据库信息填写无误,将会看到导入数据成功的提,如下图所示

image

此时便代表安装成功

4.4 功能简介

先来熟悉一些XSS Platform的一些功能,在安装完成界面点击进入首页,会要求先登录,在登录界面输入刚才安装时所填写的管理员账号信息,点击登录即可,登录成功之后会自动跳转到首页,如下图所示

image

在首页中可以看到有一个默认项目,点击default后可以看到受害者列表,不过刚刚安装肯定是还没有数据的,如下图所示

image

在图中右上方有一个查看代码的链接,点击进去便可以查看XSS Platform预备好的攻击代码,如下图所示

image

五、攻击测试

现在笔者将正是开始进行一些实践演示,首先会找出一个permeate渗透测试系统的XSS漏洞,将XSS Platform的攻击代码插入进去;

然后模拟受害者访问到被攻击的页面,会到XSS platform系统中查看收到的cookie值,最后使用接收到的cookie来冒充受害者。

permeate 渗透测试系统源码和搭建教程地址可以参考:https://github.com/78778443/permeate

5.1 插入XSS代码

笔者此前已经将permeate渗透测试系统搭建成功,下面将在此系统发表一个帖子,并在帖子标题中插入XSS Platform中预备好的攻击代码,如下图所示

image

点击发表按钮,便将帖子发布成功,此时假定自己为受害者,访问了此帖子列表,在列表中会读取帖子的标题,帖子<script>标签别浏览器执行便不会显示出来,如下图所示

image

5.2 接收cookie

可以看到并没有显示出来,再回到XSS Platform当中,查看default项目中的受害者列表,可以看到一个受害者,如下图所示

image

说明受害者已经成功中招,并且通过攻击代码已经获取到对方的cookie值和header信息

5.3 替换cookie

有了cookie值之后,笔者将使用另外一个浏览器,通过修改cookie的方式来登录受害者的账户,如下图修改cookie的操作
image

再次刷新时,已经变成了登录身份,如下图所示
image

六、图书推荐

如果对笔者的文章较为感兴趣,可以关注笔者图书《PHP Web安全开发实战》,现已在各大平台上架销售,封面如下图所示

image


作者:汤青松

日期:2020-03-03

微信:songboy8888

阅读 19.7k

PHP安全实践
分享正在普及的安全知识

《PHP Web安全开发实战》 作者

5.1k 声望
8.3k 粉丝
0 条评论
你知道吗?

《PHP Web安全开发实战》 作者

5.1k 声望
8.3k 粉丝
宣传栏