从零开始搭建轻量级个人XSS平台

一、 前言

决定搭建XSS平台是因为自己想深入学习一下XSS相关的知识,多多进行实践,上网搜索了一下XSS平台有很多,但是总觉得不是很安全,这个毕竟敏感信息要传输到陌生人的服务器上,而且服务器端测试代码存在不可控性,所以决定自行搭建XSS平台做学习之用。在搭建完成后和我的导师徐松进行了交流,发现这款XSS平台除了在GitHub上有作者专业化的说明外,在网上没有任何关于这款XSS平台搭建方面的教程,最后在导师的鼓励和帮助下促成了这篇分享,也顺便记录一下自己所出现的问题方便以后回顾。

1.  什么是XSS平台

XSS平台可以辅助安全测试人员对XSS相关的漏洞危害进行深入学习,了解XSS的危害重视XSS的危害,如果要说XSS可以做哪些事情,XSS可以做js能够做的所有事情。包括但不限于:窃取Cookie、后台增删改文章、钓鱼、利用XSS漏洞进行传播、修改网页代码、网站重定向、获取用户信息(如浏览器信息,IP地址等)等。

2.  实验环境

涉及到的知识:Git、Linux基础、Apache简单配置、PHP简单配置、iptables防火墙设置

XSS平台项目名称:BlueLotus_XSSReceiver

作者:firesun(来自清华大学蓝莲花战队)

项目地址:https://github.com/firesunCN/BlueLotus_XSSReceiver

服务器操作系统:Centos 6.6

web容器:Apache

脚本语言:PHP

服务器IP地址:服务器IP地址

虚拟主机:192.168.245.133

web应用:DVWA

3.  推荐理由

推荐理由:界面布局清新、数据可阅读性好、IP获取准确、IP地址定位精准、轻量级(无需数据库)、对数据存储进行加密、GitHub开源方便与开发者交流(生命周期长)。

二、 XSS平台的搭建过程

1、安装Apache

#安装Apache

yuminstall httpd –y

#启动apache服务

servicehttpd start

#当我们在浏览器访问我们服务器时出现此页面时,代表着Apace已经安装成功

2、安装PHP

#安装PHP环境

yuminstall php –y

3、安装Git工具

#安装Git工具

yuminstall git –y

4、从GitHub克隆XSS平台源码

#删除Apache默认页面

rm -Rf/var/www/*

#在www目录下创建网站文件夹

mkdir/var/www/xss

#从GitHub上获取XSS平台源码

gitclone https://github.com/firesunCN/BlueLotus_XSSReceiver.git /var/www/xss/

#赋予权限

chmod –R777 /var/www/xss/

5、配置Apache

#新建虚拟主机配置文件夹

mkdir/etc/httpd/conf/vhost

#新建虚拟主机配置文件

touch/etc/httpd/conf/vhost/httpd-vhosts.conf

#编辑虚拟机配置文件

vi /etc/httpd/conf/vhost/httpd-vhosts.conf

#按A键进入编辑状态

<VirtualHost *:80>

DocumentRoot "/var/www/xss"

DirectoryIndex admin.php

</VirtualHost>

#对文件进进行保存

按esc键退出编辑状态,进入到命令模式

输入:wq命令然后回车保存编辑的文本

#编辑httpd.conf文件、将刚刚添加虚拟主机文件包含到配置文件中

cp/etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak

vi/etc/httpd/conf/httpd.conf

修改httpd.conf 292行

修改303行为 Options ExecCGIFollowSymLinks(允许服务器使用CGI)

修改338行为AllowOverrideAll

在配置文件末尾插入以下内容

Include/etc/httpd/conf/vhost/httpd-vhosts.conf

#设置Apache开机启动

chkconfighttpd on

#重新载入Apache配置文件

servicehttpd reload

6、安装XSS平台

#访问http://服务器IP地址

点击安装

# 设置后台登录密码、数据加密密码(一定记得要修改)

#其余选项可保持默认,然后提交

#安装成功

#登录后台,访问http://服务器IP地址/login.php

三、 XSS平台的功能测试

1、获取Cookie

#配置公共模板default.js,修改js代码中的网站地址为http://服务器IP地址/index.php

#最后,点击下方的修改,保存修改

# 进入“我的js”模块

#设置js文件名称

#选择default.js模板

#插入模板

#新增

#选择“新增”保存js测试代码

#选择“生成payload”

实例:测试站点Dvwa XSS(stored)测试部分

#刷新Dvwa XSS(stored)页面

#XSS平台接收到获取的Cookie

2、与同类XSS平台比较

#下面是一套比较主流的XSS平台源码程序(http://xssa.me)所展示获取的Cookie

#同刚刚我们所使用的平台做一对比,发现我们的这个平台还是有一些自己的特点的:

  • 界面简洁,更加的人性化
  • 数据的可阅读性
  • 数据获取准确
  • 定位精准(使用纯真ip数据库)
  • 网站收信提示
  • 轻量级、安全(不使用数据库)
  • 密码输错五次封IP(解封需要删除/var/www/xss/data/forbiddenIPList.dat中的封禁IP)
  • 对XSS记录、IP封禁列表、js的说明(仅说明)加密,可设置是否加密、加密密码以及加密方式(AES、RC4)
  • 内置编辑器支持js语法高亮、语法错误检查
  • 网站安全配置

1、配置Apache

#编辑httpd.conf文件

vi/etc/httpd/conf/httpd.conf

# 44行修改为ServerTokensProd

# 536行改为修改为ServerSignatureOff

servicehttpd reload

#以上两条命令执行后前后结果对比

2、配置PHP

#编辑php.ini

cp/etc/php.ini /etc/php.ini.bak

vi /etc/php.ini

#修改432行为expose_php= Off

servicehttpd reload

#修改前后对比

3、配置iptables状态检测防火墙

只对外开放:HTTP、SSH服务

#修改ssh监听端口

vi/etc/ssh/sshd_config

#启动防火墙

serviceiptables start

#清除防火墙规则

iptables–F

#查看当前防火墙规则

iptables-L

#INPUT链:允许已经建立连接和在已建立的连接的基础上对服务器连接发起的连接

iptables-A INPUT -d 服务器IP地址 -mstate --state ESTABLISHED,RELATED -j ACCEPT

#INPUT链:允许对服务器http80端口新发起的连接

iptables-A INPUT -d服务器IP地址-p tcp --dport 80 -m state --state NEW –j ACCEPT

#INPUT链:允许对服务器ssh23233端口新发起的连接

iptables-A INPUT -d服务器IP地址-p tcp --dport 23233 -m state --state NEW -j ACCEPT

#OUTPUT链:允许已经建立连接和在已建立的连接的基础上服务器对其它地址连接发起的连接

iptables-A OUTPUT -s服务器IP地址-m state --state ESTABLISHED,RELATED -j ACCEPT

#OUTPUT链:允许服务器向外部服务器DNS53(udp)端口新发起DNS解析请求(yum等服务需要用到)

iptables-A OUTPUT -s服务器IP地址-p udp --dport 53 -m state --state NEW -j ACCEPT

#OUTPUT链:允许服务器向外部服务器http80端口新发起请求(yum等需要用到)

iptables-A OUTPUT -s服务器IP地址-p tcp --dport 80 -m state --state NEW -j ACCEPT

#OUTPUT链:允许服务器向外部服务器https443端口新发起请求(git等需要用到)

iptables-A OUTPUT -s服务器IP地址-p tcp --dport 443 -m state --state NEW -j ACCEPT

#配置防火墙默认进出规则:拒绝所有数据包

iptables-P INPUT DROP

iptables-P OUTPUT DROP

#保存防火墙规则

serviceiptables save

#设置防火墙开机自启动

chkconfigiptables on

4、SSH防暴力破解

#编辑脚本

vi/root/script/ssh-ban.sh

#添加可执行权限

chmod a+xssh-ban.sh

#设置执行计划(每5分钟执行一次检测)

echo"*/5 * * * * sh /root/script/ssh-ban.sh" >>/var/spool/cron/root

#开启服务

service crondstart

#设置开机启动

chkconfigcrond on

#输错5次密码被Ban后的效果

五、 遇到的问题

1、无法获取Cookie

解决方法:js代码“网站地址”处填http://服务器IP地址/index.php

解决思路:打开调试模式-刷新-发现确实有我们的xss-js代码执行-找到返回的数据包-发现返回数据包302跳转到XSS平台主页;

此时查看网站根目录发现index.php这个文件,因为我们的主页是admin.php,而index.php这个页面似乎并没有使用,打开后猜测其内容应该是接收处理发送来的参数

再次查看GitHub README文件,发现

于是更加确定了自己猜想应该是对的,此处网站地址应该填http://服务器IP地址/index.php用来接收参数,而不是填网站ip地址http://服务器IP地址。

六、 总结

在这次搭建XSS平台学习XSS利用技术的过程中,还是遇到了一些问题,比如:服务器端js代码的配置、一些新功能的尝试等。过程中锻炼了自己的动手能力,了解了XSS平台基本网站结构,帮助自己巩固了以前学习的知识。这个平台上还有一些js利用代码的功能还不是很了解,以后在工作之余可以学习学习。希望以后可以向大家多学习相关知识,不断提升自己,努力能够为团队出一份自己的绵薄之力。

原文地址:https://www.cnblogs.com/blacksunny/p/8401688.html

时间: 2024-10-29 04:37:52

从零开始搭建轻量级个人XSS平台的相关文章

构造个人轻量级XSS平台获取管理员cookie并登录

一.前言 本平台是个人轻量级XSS测试平台,仅作为练习参考. 二.实验环境 服务器操作系统:Centos 6.6 Web容器:Apache 三.平台搭建过程 安装Apache 安装PHP 安装Git工具 从GitHub克隆XSS平台源码 删除默认网站内容 rm  -rf  /var/www/* 创建新的网站目录 mkdir  /var/www/xss 从GitHub克隆xss测试源码(https://github.com/firesunCN/BlueLotus_XSSReceiver.git)

搭建简易xss平台

这两天在看xss的东西,学习了如何搭建xss平台,在这里做个记录吧. 首先进入到原先虚拟机里搭建好的dvwa网站测试平台,开启low安全模式后就来搞一搞xss了 在网址后面加上<script>alert(1)</script>,回车后弹窗说明存在xss漏洞 得知存在漏洞后我们可以利用自己搭建的平台来盗取cookie值(首先是搭好自己的网站啦,PHPstudy.wamp什么的都行) 在网站根目录下创建一个getcookie.php文档,写入如下代码 <?php //cookie

【读书笔记-《Android游戏编程之从零开始》】1.Android 平台简介与环境搭建

简单的记录下笔记,具体可百度! Android SDK (Software Development Kit)- Android 软件开发工具包,用于辅助Android 操作系统软件开发,是开发Android 软件.文档.范例.工具的一个集合.Android NDK (Native Development Kit) - 类似 Android SDK,可用C/C++语言编写Android程序. developer.android.com - 可查阅到 Android SDK. 开发指南.API说明等

XSS平台搭建

简介: 在实施xss攻击的时候,需要有一个平台用来收集攻击获得猎物(cookie,用户名密码等):xss平台就是这样一个用于收取cookie,账号等信息的平台:可以使用外网的xss平台来测试外网的网站:也可以自己在本地搭建xss平台,测试本地搭建的web网站DVWA的漏洞 试验中,使用的xss平台是xsser 直接创建项目:在网站有xss的地方插入项目中的代码,执行的时候会把对应的信息发送到平台上.具体看平台上的说明. 基础认证钓鱼模块:插入xss后,用户访问的时候会弹出一个登陆框,用于输入用户

如何从零开始搭建一个技术平台?

关键词:技术预研课题,平台设计,应用场景,故事,信息架构,业务流程,数据流程 本文档适用人员:全体研发 提纲: 应用场景其实就是我们的愿景 从应用场景推导出故事 从故事推导出信息架构和业务流程 一,如何从零开始? 如果让你把下面这套技术体系串联起来,从零开始构建一个技术平台,你如何做需求分析呢,在没有产品经理帮助你梳理的情况下? 下面这些系统涵盖了我们研发测试运维日常工作的方方面面: idCenter:它定义用户.用户组.权限.研发测试都有了唯一的身份和权限集合,贯穿所有系统. iDB:数据库自

CentOS安装beEF做XSS平台

提到xss平台,大部分人都在用xsser.me的源码搭建,xsser.me源码搭建的平台虽然好用,但是功能不够强大,比如无法和Metasploit配合使用进行更深一步的入侵测试. 这次部署邮件服务器大致分为3个步骤: 安装GEM 安装配置beEF 测试 >>安装GEM 步骤 1 » 安装rvm.导入key curl -sSL https://rvm.io/mpapis.asc | gpg2 --import 安装rvm curl -L get.rvm.io | bash -s stable 启

乐视秒杀架构解读:从零开始搭建百万每秒订单系统

在各种秒杀活动大行其道的今天,订单系统的性能与稳定日益重要.乐视集团作为这一技术的佼佼者,在多次的电商狂欢节中都能抢占商机.拔得头筹,其表现无疑为其他企业和厂商提供了非常有价值的参考. 在Gdevops全球敏捷运维峰会北京站的现场,乐视BOSS平台技术部架构师梁阳鹤就给大家带来了<从零开始搭建百万每秒订单系统>的精彩演讲.从部分到整体,从微观到宏观,层层递进,步步为营,详尽地介绍了整套乐视支付架构及其实现每秒处理百万笔交易的成功要点. (点击“这里”听梁阳鹤演讲完整录音) 演讲主要分为三个部分

如何搭建轻量级架构-更新部署篇

搞定了前期所有的问题,你的平台架构也在慢慢完善中...余下的就是更新部署方面的问题了. 大家都知道,平台运行需要一个运行环境.抛开操作系统以及服务器这方面的安装,平台本身运行就需要数据库,数据等需要初始化. 平台的打包我们之前有讲过Maven,使用Maven可以自动化构建你的项目,本篇不再多讲. 而关于数据库以及相关数据的配置,在部署时是一件很麻烦琐碎的工作. 需要创建每一个表的结构以及索引,如果更新时,还要通过软件比对数据库差异,生成更新SQL... 通常在部署时,都没有开发人员在场,一旦出了

搭建轻量级Jave Web框架----------框架说明

? 版权声明:本文为博主原创文章,转载请注明出处 说明: 本人一年前突然对框架感兴趣,因此买了黄勇老师的<架构探险-从零开始写Java Web框架>一书.书中的讲解.代码都特别详细. 照着书完整实现了smart4j框架.但是因为是跟着老师的思路走的,没有自己的思想,只是"知其然,不知其所以然". 因此打算参照书中的内容写一个自己的简易框架,以此加深理解. 框架内容: 1. Java Web框架 2. 主要使用注解实现 3. 实现依赖注入功能(IOC) 4. 实现控制反转(D