Web安全之XSS Platform搭建及使用实践

一、背景

XSS Platform 是一个非常经典的XSS渗透测试管理系统,原作者在2011年所开发,由于后来长时间没有人维护,导致目前在PHP7环境下无法运行。

笔者最近花了一点时间将源码移植到了PHP7环境中,同时增加安装功能;另外还修复之前的代码的一些不严谨语法的问题,并调整了一些表单的样式,同时将源代码放到GitHub当中,给有需要的同行研究,为了简化安装步骤,特意写一篇文章来帮助大家。

二、操作概要

  1. 源码下载
  2. 安装配置
  3. 攻击测试

三、下载源码

github地址:https://github.com/78778443/xssplatform

首先通过cd命令将代码放到指定位置,参考命令如下

  1. cd /Users/song/mycode/safe/

之后通过git下载源码,参考命令如下:

  1. git clone https://github.com/78778443/xssplatform.git

四、安装配置

4.1 增加虚拟主机

XSS Platform 需要在根目录中运行,因此需要单独添加一个虚拟主机,笔者以nginx环境为例,配置虚拟主机的配置代码如下所示:

  1. server {
  2.     listen       80;
  3.     server_name  xss.localhost;
  4.     root  /Users/song/mycode/safe/xssplatform/;
  5.     rewrite "^/([0-9a-zA-Z]{6})$" /index.php?do=code&urlKey=$1 last;
  6.     rewrite "^/do/auth/(\w+?)(/domain/([\w\.]+?))?$" /index.php?do=do&auth=$1&domain=$3 last;
  7.     rewrite "^/register/(.*?)$" /index.php?do=register&key=$1 last;
  8.     rewrite "^/register-validate/(.*?)$" /index.php?do=register&act=validate&key=$1 last;
  9.     location / {
  10.         index index.html index.htm index.php;
  11.     }
  12.     location ~ \.php$ {
  13.         fastcgi_pass   127.0.0.1:9000;
  14.         fastcgi_index  index.php;
  15.         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  16.         include        fastcgi_params;
  17.     }
  18. }

修改配置文件后,需要重启nginx让其配置生效,重启命令参考如下:

  1. nginx -s reload

4.2 添加HOST记录

hosts文件位置是/etc/hosts,通过vim命令进行编辑,参考命令如下所示:

  1. vim /etc/hosts

在文件中添加一行记录,内容如下所示:

  1. 127.0.0.1   xss.localhost

4.3 系统安装

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

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

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

此时便代表安装成功

4.4 功能简介

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

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

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

五、攻击测试

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

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

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

5.1 插入XSS代码

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

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

5.2 接收cookie

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

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

5.3 替换cookie

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

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

Web安全之XSS Platform搭建及使用实践的更多相关文章

  1. web安全后渗透--XSS平台搭建及使用

     xss平台搭建 1.申请一个云主机来进行建站:149.28.xx.xx 2.安装lnmp: wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO ln ...

  2. [红日安全]Web安全Day2 - XSS跨站实战攻防

    本文由红日安全成员: Aixic 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目起了一个名 ...

  3. WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案(转)

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...

  4. WEB安全:XSS漏洞与SQL注入漏洞介绍及解决方案

    对web安全方面的知识非常薄弱,这篇文章把Xss跨站攻击和sql注入的相关知识整理了下,希望大家多多提意见. 对于防止sql注入发生,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避 ...

  5. Web安全测试之XSS

    Web安全测试之XSS XSS 全称(Cross Site Scripting) 跨站脚本攻击, 是Web程序中最常见的漏洞.指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此 ...

  6. Web笔记(一) Web 简介与开发环境搭建

    Web应用程序的工作原理 大多数的Web应用程序结构都是采用最为流行的B/S软件开发体系结构,将Web应用程序部署在Web服务器上,只要Web服务器启动,用户就可以通过客户端浏览器发送HTTP请求到W ...

  7. Selenium Web 自动化 - Selenium(Java)环境搭建

    Selenium Web 自动化 - Selenium(Java)环境搭建 2016-07-29 1 下载JDK JDK下载地址:http://www.oracle.com/technetwork/j ...

  8. web安全之XSS注入

    之前在做项目的时候有遇到一些安全问题,XSS注入就是其中之一 那么,什么是XSS注入呢? XSS又叫CSS (Cross Site Script) ,跨站脚本攻击.它指的是恶意攻击者往Web页面里插入 ...

  9. List多个字段标识过滤 IIS发布.net core mvc web站点 ASP.NET Core 实战:构建带有版本控制的 API 接口 ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目 Using AutoFac

    List多个字段标识过滤 class Program{  public static void Main(string[] args) { List<T> list = new List& ...

随机推荐

  1. python复习基本知识

    print(x or y) """x or y ; x 为 true ,则返回x ,否则返回flase“”“” and 则相反 优先级比较:not > and &g ...

  2. 02-再探MySQL数据库

    一.数据类型 1.数值类型 a.整数类型 整数类型:TINYINT SMALLINT MEDIUMINT INT BIGINT 作用:存储年龄,等级,id,各种号码等. =============== ...

  3. Day06(类包、内部类)

    在static静态方法中能直接调用的方法只能是静态方法.要想调用其它非静态方法,需要借助对象. 类包:是Java提供的一种管理类文件的机制.可以解决类名冲突问题,在开发庞大应用程序时帮助开发人员管理庞 ...

  4. resource links

    http://cenalulu.github.io/linux/all-about-cpu-cache/

  5. html_jQuery

    jQuery:对Dom和js的封装模块 jQuery 低版本(1.x)兼容IE,jquery下载:http://jquery.com/download/ 若不考虑兼容ie,可下载最新版 我用的jQue ...

  6. phpmail发送phpexcel生成的附件,php导出的Excel 作为邮件附件发送

    PHP发送邮件戳这里https://www.cnblogs.com/wangzhaobo/p/8931328.html PHP导出excel戳这里https://www.cnblogs.com/wan ...

  7. UOJ#196. 【ZJOI2016】线段树 概率期望,动态规划

    原文链接www.cnblogs.com/zhouzhendong/p/UOJ196.html 题解 先离散化,设离散化后的值域为 $[0,m]$ . 首先把问题转化一下,变成:对于每一个位置 $i$ ...

  8. 如何明确区分代码中的1和l

    如poly1d 单独将其复制到记事本,然后按ctrl+F,输入要查找的对象,数字1或者小写字母l,找到的对象会已高亮表示,所以就可以确定了高亮表示的是数字1还是字母l.

  9. JS实现快速排序,冒泡排序

    JS-排序详解-冒泡排序   说明 时间复杂度指的是一个算法执行所耗费的时间 空间复杂度指运行完一个程序所需内存的大小 稳定指,如果a=b,a在b的前面,排序后a仍然在b的前面 不稳定指,如果a=b, ...

  10. 展开被 SpringBoot 玩的日子 《 二 》 WEB 开发

    上篇文章介绍了Spring boot初级教程 :< spring boot(一):入门篇 >,方便大家快速入门.了解实践Spring boot特性:本篇文章接着上篇内容继续为大家介绍spr ...