热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

phpxssctf,GitHubqiaofei32/BlueLotus_XSSReceiver:XSS平台CTF工具Web安全工具

XSS数据接收平台(无SQL版)如从旧版本升级,请务必先阅读Readme平台说明本平台设计理念:简单配置即可使用,无需数据库,无需其他组件

XSS数据接收平台(无SQL版)

如从旧版本升级,请务必先阅读Readme

平台说明

本平台设计理念: 简单配置即可使用,无需数据库,无需其他组件支持,可直接在php虚拟空间使用

SAE用户请切换到sae分支,并阅读sae分支下的README.md

mainpanel.png

安装说明

自动安装

安装http server与php环境(ubuntu: sudo apt-get install apache2 php5 或 sudo apt-get install apache2 php7.0 libapache2-mod-php7.0)

上传所有文件至空间根目录

install.png

根据提示配置xss平台

在配置前,需要赋予xss数据存储路径、js模板存储路径、我的js存储路径写权限,以及平台根目录写权限(sudo chmod 777 -R ./)

当有请求访问/index.php?a=xxx&b=xxxx,所有携带数据包括get,post,COOKIE,httpheaders,客户端信息都会记录

如不做二次开发,可直接删除根目录下diff、guide、src目录

如果有权限,请开启Apache中的AllowOverride以使.htaccess生效(可选)

xss数据存储路径将被设置为禁止web访问

js模板存储路径、我的js存储路径将被设置为仅允许访问js文件

手动安装

安装http server与php5环境(ubuntu: sudo apt-get install apache2 php5)

上传所有文件至空间根目录

将config-sample.php重命名为config.php,修改config.php,指定xss数据、我的js、js模板的存放目录,以及数据是否启用加密、加密密码、与加密方法(详细说明见文件注释)

define('PASS', '2a05218c7aa0a6dbd370985d984627b8');

define('DATA_PATH', 'data');

define('JS_TEMPLATE_PATH', 'template');

define('MY_JS_PATH', 'myjs');

define('ENABLE_ENCRYPT', true);

define('ENCRYPT_PASS', "bluelotus");

define('ENCRYPT_TYPE', "RC4");

PASS为登录密码,可用php -r '$salt="!KTMdg#^^I6Z!deIVR#SgpAI6qTN7oVl";$key="你的密码";$key=md5($salt.$key.$salt);$key=md5($salt.$key.$salt);$key=md5($salt.$key.$salt);echo $key;'生成密码hash

赋予DATA_PATH,MY_JS_PATH,JS_TEMPLATE_PATH对应的目录写权限

当有请求访问/index.php?a=xxx&b=xxxx,所有携带数据包括get,post,COOKIE,httpheaders,客户端信息都会记录

可访问admin.php登录查看记录的数据,初始登录密码bluelotus

如不做二次开发,可直接删除根目录下diff、guide、src目录

如果有权限,请开启Apache中的AllowOverride以使.htaccess生效(可选)

DATA_PATH被设置为禁止web访问

MY_JS_PATH与JS_TEMPLATE_PATH被设置为仅允许访问js文件

f6e664f947143f43461232a864d945b4.png

Docker部署

Build & Run

git clone https://github.com/firesunCN/BlueLotus_XSSReceiver.git && cd BlueLotus_XSSReceiver

docker build -t bluelotus .

docker run -d -p 80:80 bluelotus

Login

访问 http://ip/admin.php 密码 bluelotus

目前支持功能

自动判断携带数据是否base64编码,可自动解码

fe7f0b1e3b923ec02efcc64c20428dd1.png

记录所有可记录的数据,并可根据ip判断位置,根据useragent判断操作系统与浏览器

323e2a1f8222ed830796d5a664e1ddf5.png

新消息提醒,仿QQ邮箱新消息提醒框,可实时获得数据

newmessage.png

支持简单的查找功能

a08217f7f50c7a4b83dc7a04fd65e991.png

除了style允许unsafe-inline外启用CSP

挑战应答式的登录校验,session绑定ip与useragent

密码输错五次封IP,误封请删除DATA_PATH/forbiddenIPList.dat文件

可以通过平台直接维护用于xss的js文件(详细说明见下)

js公用模板模块

jstemplate.png

用户可添加一些js通用模板,在我的js里可随时插入js模板

采用ace编辑器,支持js语法高亮,语法错误检查

editor.png

使用js_beautify实现js代码格式化,可随时格式化js代码

使用jsmin实现js代码压缩,可随时压缩js代码

支持复制js代码的url到剪切板(需要浏览器支持flash)

提供了一些常用的js模板,包括前几天心血来潮研究的用js截图,许多模板都是来自各大xss平台,但是又记不起来是分别来自哪,只能再次对各位安全研究人员表示感谢

我的js模块

myjs.png

用户可随时插入js模板

部分整合xssor功能,方便生成payload,xssor有跟强大的功能,大家可以去follow evilcos的github

xssor.png

keepsession功能

需要在config.php开启

如果请求的get或post或COOKIE中带有keepsession=1,则这条记录会被keepsession

请设置脚本或者网站监控定期访问keepsession.php

请将COOKIE存在COOKIE参数,url存在location参数(传递方法可get可post可COOKIE),如index.php?keepsession=1&COOKIE=aaa&location=bbb,keepsession.php将会定期使用COOKIE aaa去访问bbb

COOKIE和location参数支持base64编码,keepsession.php会自动判断,自动解码

如果不设置location,将会使用HTTP Referer作为url

keepsession.php使用flock($pid, LOCK_EX|LOCK_NB)实现单例运行(由于windows下不支持无阻塞锁定,所以最好删除keepsession.php里的set_time_limit(0)),可自行加上sleep防止keepsession.php被恶意频繁访问

邮件提醒

修改config.php相关配置即可,默认关闭,开启后,每次接收到xss都会发邮件通知,需要短信提醒的直接把接收邮箱设置为手机邮箱即可

define('MAIL_ENABLE', false);//开启邮件通知

define('SMTP_SERVER', "smtp.xxx.com");//smtp服务器

define('SMTP_PORT', 465);//端口

define('SMTP_SECURE', "ssl");

define('MAIL_USER', "xxx@xxx.com");//发件人用户名

define('MAIL_PASS', "xxxxxx");//发件人密码

define('MAIL_FROM', "xxx@xxx.com");//发件人地址(需真实,不可伪造)

define('MAIL_RECV', "xxxx@xxxx.com");//接收通知的邮件地址

修改数据加密密码,加密方式

本平台对xss记录、ip封禁列表、js的说明(仅说明)加密,用户可设置是否加密,密码以及加密方式(AES、RC4)

3.0版本起配置里的默认加密方式改为RC4(为了效率)

如果需要改密码,改加密方式,需要对xss记录、ip封禁列表、js的说明进行重加密才能正常访问这些数据

故根目录下提供了change_encrypt_pass.php用于重新加密xss记录,js的描述,ip封禁列表

请在修改加密方式或者加密密码后执行此文件(如果选择不加密,加密密码可写任意值)

使用前,请将change_encrypt_pass.php开始的exit()注释掉,并且在使用前务必做好数据备份以防不测

用法:在shell下执行

php change_encrypt_pass.php (以前是否加密true/false) (旧加密密码) (旧加密方法AES/RC4) (现在是否加密) (新加密密码) (新加密方法)

例:

php change_encrypt_pass.php true bluelotus AES true bluelotus RC4

php change_encrypt_pass.php true bluelotus AES false xxxx(任意值) AES

也可执行

php change_encrypt_pass.php update (以前是否加密true/false) (旧加密密码)

此命令可将所有“xss记录”转化为加密开启,密码bluelotus,加密方法RC4

旧版本升级

不保留数据

如无需保留xss数据,直接删除原平台,重新安装即可

保留数据

备份数据

删除原平台,重新安装xss平台,配置时,是否加密,加密密码与加密方式需要与以前一样(早期版本,加密方式选AES)

复制原平台DATA_PATH,MY_JS_PATH,JS_TEMPLATE_PATH对应的目录,覆盖新平台的相应目录

升级完成

注:

如果重新安装xss平台时,选择的手动安装,升级步骤如下

备份数据

删除原平台,重新安装xss平台,修改config.php配置,是否加密,加密密码与加密方式需要与以前一样(早期版本,加密方式写AES)

执行change_encrypt_pass.php完成重加密的过程

php change_encrypt_pass.php true bluelotus RC4 (配置文件中是否加密) (配置文件中加密密码) (配置文件中加密方法)

修改config.php,修改是否加密,新密码,加密方式

复制原平台DATA_PATH,MY_JS_PATH,JS_TEMPLATE_PATH对应的目录,覆盖新平台的相应目录

升级完成

TODO

支持SAE

多用户(SQL版本)

WebSocket方式通知

src目录说明

static/js与static/css下的js与css文件已压缩

其中jqxcore.js、jqxdata.js、jqxgrid.js、jqxgrid.columnsresize.js、jqxgrid.filter.js、jqxgrid.edit.js、jqxgrid.pager.js、jqxgrid.selection.js、jqxgrid.sort.js、jqxbuttons.js、jqxcombobox.js、jqxdropdownlist.js、jqxinput.js、jqxlistbox.js、jqxmenu.js、jqxscrollbar.js、jqxsplitter.js、jqxtabs.js、jqxtextarea.js、jqxtoolbar.js、jqxwindow.js合并为jqwidgets.min.js

css与js源文件移至src目录下,方便二次开发

特别说明

前端使用Bootstrap与jQWidgets开发,(原来用kendo UI,受限于商业许可,改用jQWidgets),you can use jQWidgets for free under the Creative Commons Attribution-NonCommercial 3.0 License, 但是不可用于商业用途,如需用于商业用途请购买授权

为实现jqxgrid不支持的功能,如固定表格高度实现row高度自动调节,修改了jQWidgets部分代码,具体修改部分可查看diff文件夹

使用纯真ip库的函数基于Discuz X3.1 function_misc.php上修改而来, 判断客户端操作系统与浏览器的脚本基于原作者@author Jea杨写的php版本修改而来,后台整体布局借鉴Kendo UI 的demo NORTHWIND DASH

js代码压缩采用jsmin.js

js代码编辑器采用ace

安装脚本完全参考wordpress的安装程序

Warning: 本工具仅允许使用在CTF比赛等学习、研究场景,严禁用于非法用途

意见与建议

欢迎大家在使用过程中提出各种宝贵的意见和建议,以及各种bug,不胜感激

反馈邮箱firesun.cnatgmail.com



推荐阅读
  • HTTP请求与响应机制:基础概览
    在Web浏览过程中,HTTP协议通过请求和响应报文实现客户端与服务器之间的通信。当用户访问一个网页时,浏览器会发送一个HTTP请求报文至服务器,服务器接收到请求后,会生成并返回一个HTTP响应报文。这两种报文均包含三个主要部分:起始行、头部字段和消息体,确保了数据的有效传输和解析。 ... [详细]
  • IIS配置大全:从基础到高级的全面指南
    IIS配置详解:从基础到高级的全面指南IIS前端配置与web.config文件紧密相关,相互影响。本文详细介绍了如何设置允许通过的HTTP请求方法,包括HEAD、POST、GET、TRACE和OPTIONS。提供了两种主要的配置方法,并探讨了它们在实际应用中的优缺点。此外,还深入讲解了其他高级配置选项,帮助读者全面提升IIS服务器的性能和安全性。 ... [详细]
  • 本文详细解析了JSONP(JSON with Padding)的跨域机制及其工作原理。JSONP是一种通过动态创建``标签来实现跨域请求的技术,其核心在于利用了浏览器对``标签的宽松同源策略。文章不仅介绍了JSONP的产生背景,还深入探讨了其具体实现过程,包括如何构造请求、服务器端如何响应以及客户端如何处理返回的数据。此外,还分析了JSONP的优势和局限性,帮助读者全面理解这一技术在现代Web开发中的应用。 ... [详细]
  • 基于Node.js的高性能实时消息推送系统通过集成Socket.IO和Express框架,实现了高效的高并发消息转发功能。该系统能够支持大量用户同时在线,并确保消息的实时性和可靠性,适用于需要即时通信的应用场景。 ... [详细]
  • SQLmap自动化注入工具命令详解(第28-29天 实战演练)
    SQL注入工具如SQLMap等在网络安全测试中广泛应用。SQLMap是一款开源的自动化SQL注入工具,支持12种不同的数据库,具体支持的数据库类型可在其插件目录中查看。作为当前最强大的注入工具之一,SQLMap在实际应用中具有极高的效率和准确性。 ... [详细]
  • 在Laravel中实现PHP对JSON数据的发布与处理 ... [详细]
  • 本文深入解析了 Apache 配置文件 `httpd.conf` 和 `.htaccess` 的优化方法,探讨了如何通过合理配置提升服务器性能和安全性。文章详细介绍了这两个文件的关键参数及其作用,并提供了实际应用中的最佳实践,帮助读者更好地理解和运用 Apache 配置。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • 探讨 `org.openide.windows.TopComponent.componentOpened()` 方法的应用及其代码实例分析 ... [详细]
  • 在处理大规模并发请求时,传统的多线程或多进程模型往往无法有效解决性能瓶颈问题。尽管它们在处理小规模任务时能提升效率,但在高并发场景下,系统资源的过度消耗和上下文切换的开销会显著降低整体性能。相比之下,Python 的 `asyncio` 模块通过协程提供了一种轻量级且高效的并发解决方案。本文将深入解析 `asyncio` 模块的原理及其在实际应用中的优化技巧,帮助开发者更好地利用协程技术提升程序性能。 ... [详细]
  • 在生产环境中进行高效部署与优化 ... [详细]
  • HTTP协议作为互联网通信的基础,其重要性不言而喻。相比JDK自带的URLConnection,HttpClient不仅提升了易用性和灵活性,还在性能、稳定性和安全性方面进行了显著优化。本文将深入解析HttpClient的使用方法与技巧,帮助开发者更好地掌握这一强大的工具。 ... [详细]
  • 在本文中,我们将探讨如何使用 UniApp 封装小程序 API 请求接口的最佳实践。通过创建 `request.js` 文件,定义基础 URL 并传入后端提供的 URL 作为请求参数。同时,配置请求方法(如 GET、POST)和请求头(例如包含 token 的认证信息),以实现高效、安全的 API 调用。此外,我们还将介绍如何处理请求和响应的错误,以及如何优化请求性能,确保应用在不同平台上的兼容性和稳定性。 ... [详细]
  • Django框架进阶教程:掌握Ajax请求的基础知识与应用技巧
    本教程深入探讨了Django框架中Ajax请求的核心概念与实用技巧,帮助开发者掌握异步数据交互的方法,提升Web应用的响应速度和用户体验。通过实例解析,详细介绍了如何在Django项目中高效实现Ajax请求,涵盖从基础配置到复杂场景的应用。 ... [详细]
author-avatar
f永远喜爱捉迷藏
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有