{"id":13671797,"url":"https://github.com/firesunCN/BlueLotus_XSSReceiver","last_synced_at":"2025-04-27T18:31:49.346Z","repository":{"id":44426348,"uuid":"44088646","full_name":"firesunCN/BlueLotus_XSSReceiver","owner":"firesunCN","description":null,"archived":false,"fork":false,"pushed_at":"2023-02-02T10:10:14.000Z","size":18264,"stargazers_count":1552,"open_issues_count":11,"forks_count":991,"subscribers_count":66,"default_branch":"master","last_synced_at":"2025-04-07T22:11:12.854Z","etag":null,"topics":["ctf"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/firesunCN.png","metadata":{"files":{"readme":"README.md","changelog":"change_encrypt_pass.php","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2015-10-12T06:37:45.000Z","updated_at":"2025-04-07T02:00:12.000Z","dependencies_parsed_at":"2024-01-14T17:19:23.503Z","dependency_job_id":null,"html_url":"https://github.com/firesunCN/BlueLotus_XSSReceiver","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firesunCN%2FBlueLotus_XSSReceiver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firesunCN%2FBlueLotus_XSSReceiver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firesunCN%2FBlueLotus_XSSReceiver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/firesunCN%2FBlueLotus_XSSReceiver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/firesunCN","download_url":"https://codeload.github.com/firesunCN/BlueLotus_XSSReceiver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251187294,"owners_count":21549616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ctf"],"created_at":"2024-08-02T09:01:19.005Z","updated_at":"2025-04-27T18:31:44.329Z","avatar_url":"https://github.com/firesunCN.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# XSS数据接收平台（无SQL版）\n如从旧版本升级，请务必先阅读Readme。同时，只是一个很久以前打CTF比赛练手的项目，现在回看起来很多地方写的都不优雅，不过难得的发现过了这么多年还能使用。本项目仅供学习交流使用，不得用于任何非法用途。\n\n## 平台说明\n* 本平台设计理念: 简单配置即可使用，无需数据库，无需其他组件支持，可直接在php虚拟空间使用\n* SAE用户请切换到sae分支，并阅读sae分支下的README.md\n\n![](./guide/mainpanel.png)\n\n##安装说明\n###自动安装\n* 安装http server与php环境（ubuntu: sudo apt-get install apache2 php5 或 sudo apt-get install apache2 php7.4 libapache2-mod-php7.4）\n* 上传所有文件至空间根目录\n* 访问http://网站地址/\n \n![](./guide/install.png)\n\n* 根据提示配置xss平台\n* 在配置前，需要赋予xss数据存储路径、js模板存储路径、我的js存储路径写权限，以及平台根目录写权限（sudo chmod 777 -R ./）\n* 完成安装，访问http://网站地址/admin.php登录后台\n* 当有请求访问/index.php?a=xxx\u0026b=xxxx，所有携带数据包括get，post，cookie，httpheaders，客户端信息都会记录\n* 如不做二次开发，可直接删除根目录下diff、guide、src目录\n* 如果有权限，请开启Apache中的AllowOverride以使.htaccess生效（可选）\n\t* xss数据存储路径将被设置为禁止web访问\n\t* js模板存储路径、我的js存储路径将被设置为仅允许访问js文件\n\n###手动安装\n* 安装http server与php5环境（ubuntu: sudo apt-get install apache2 php5）\n* 上传所有文件至空间根目录\n* 将config-sample.php重命名为config.php，修改config.php，指定xss数据、我的js、js模板的存放目录，以及数据是否启用加密、加密密码、与加密方法（详细说明见文件注释）\n```php\ndefine('PASS', '2a05218c7aa0a6dbd370985d984627b8');\ndefine('DATA_PATH', 'data');\ndefine('JS_TEMPLATE_PATH', 'template');\ndefine('MY_JS_PATH', 'myjs');\ndefine('ENABLE_ENCRYPT', true);\ndefine('ENCRYPT_PASS', 'bluelotus');\ndefine('ENCRYPT_TYPE', 'RC4');\n```\n* 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\n* 赋予`DATA_PATH`，`MY_JS_PATH`，`JS_TEMPLATE_PATH`对应的目录写权限\n* 当有请求访问/index.php?a=xxx\u0026b=xxxx，所有携带数据包括get，post，cookie，httpheaders，客户端信息都会记录\n* 可访问admin.php登录查看记录的数据，初始登录密码bluelotus\n* 如不做二次开发，可直接删除根目录下diff、guide、src目录\n* 如果有权限，请开启Apache中的AllowOverride以使.htaccess生效（可选）\n\t* DATA_PATH被设置为禁止web访问\n\t* MY_JS_PATH与JS_TEMPLATE_PATH被设置为仅允许访问js文件\n\t\n![](./guide/login.png)\n\n## 目前支持功能\n* 自动判断携带数据是否base64编码，可自动解码\n\n![](./guide/base64.png)\n\n* 记录所有可记录的数据，并可根据ip判断位置，根据useragent判断操作系统与浏览器\n\n![](./guide/info.png)\n\n* 新消息提醒，仿QQ邮箱新消息提醒框，可实时获得数据\n\n![](./guide/newmessage.png)\n\n* 支持简单的查找功能\n\n![](./guide/search.png)\n\n* 除了style允许unsafe-inline外启用CSP\n* 挑战应答式的登录校验，session绑定ip与useragent\n* 密码输错五次封IP，误封请删除`DATA_PATH`/forbiddenIPList.dat文件\n* 可以通过平台直接维护用于xss的js文件（详细说明见下）\n\n## js公用模板模块\n\n![](./guide/jstemplate.png)\n\n* 用户可添加一些js通用模板，在我的js里可随时插入js模板\n* 采用ace编辑器，支持js语法高亮，语法错误检查\n\n![](./guide/editor.png)\n\n* 使用js_beautify实现js代码格式化，可随时格式化js代码\n* 使用jsmin实现js代码压缩，可随时压缩js代码\n* 支持复制js代码的url到剪切板（需要浏览器支持flash）\n* 提供了一些常用的js模板，包括前几天心血来潮研究的用js截图，许多模板都是来自各大xss平台，但是又记不起来是分别来自哪，只能再次对各位安全研究人员表示感谢\n\n## 我的js模块\n\n![](./guide/myjs.png)\n\n* 用户可随时插入js模板\n* 部分整合[xssor](https://github.com/evilcos/xssor)功能，方便生成payload，xssor有跟强大的功能，大家可以去follow evilcos的github\n\n![](./guide/xssor.png)\n\n## keepsession功能\n* 需要在config.php开启\n* 如果请求的get或post或cookie中带有keepsession=1，则这条记录会被keepsession\n* 请设置脚本或者网站监控定期访问keepsession.php\n* 请将cookie存在cookie参数，url存在location参数（传递方法可get可post可cookie），如`index.php?keepsession=1\u0026cookie=aaa\u0026location=bbb`,keepsession.php将会定期使用cookie aaa去访问bbb\n* cookie和location参数支持base64编码，keepsession.php会自动判断，自动解码\n* 如果不设置location，将会使用HTTP Referer作为url\n* keepsession.php使用`flock($pid, LOCK_EX|LOCK_NB)`实现单例运行（由于windows下不支持无阻塞锁定，所以最好删除keepsession.php里的`set_time_limit(0)`），可自行加上sleep防止keepsession.php被恶意频繁访问\n* 请自己做好SSRF防护\n\n## 邮件提醒\n修改config.php相关配置即可，默认关闭，开启后，每次接收到xss都会发邮件通知，需要短信提醒的直接把接收邮箱设置为手机邮箱即可\n\n```\ndefine('MAIL_ENABLE', false);//开启邮件通知\ndefine('SMTP_SERVER', 'smtp.xxx.com');//smtp服务器\ndefine('SMTP_PORT', 465);//端口\ndefine('SMTP_SECURE', 'ssl');\ndefine('MAIL_USER', 'xxx@xxx.com');//发件人用户名\ndefine('MAIL_PASS', 'xxxxxx');//发件人密码\ndefine('MAIL_FROM', 'xxx@xxx.com');//发件人地址（需真实，不可伪造）\ndefine('MAIL_RECV', 'xxxx@xxxx.com');//接收通知的邮件地址\n```\n## 修改数据加密密码，加密方式\n\n* 本平台对xss记录、ip封禁列表、js的说明（仅说明）加密，用户可设置是否加密，密码以及加密方式（AES、RC4）\n* 3.0版本起配置里的默认加密方式改为RC4（为了效率）\n* 如果需要改密码，改加密方式，需要对xss记录、ip封禁列表、js的说明进行重加密才能正常访问这些数据\n* 故根目录下提供了change_encrypt_pass.php用于重新加密xss记录,js的描述,ip封禁列表\n* 请在修改加密方式或者加密密码后执行此文件（如果选择不加密,加密密码可写任意值）\n* **使用前，请将change_encrypt_pass.php开始的exit()注释掉，并且在使用前务必做好数据备份以防不测**\n* 用法：在shell下执行\n`php change_encrypt_pass.php (以前是否加密true/false) (旧加密密码) (旧加密方法AES/RC4) (现在是否加密) (新加密密码) (新加密方法)`\n\n* 例:\n\n\t* `php change_encrypt_pass.php true bluelotus AES true bluelotus RC4`\n\t* `php change_encrypt_pass.php true bluelotus AES false xxxx(任意值) AES`\n \n* 也可执行\n\t* `php change_encrypt_pass.php update (以前是否加密true/false) (旧加密密码)`\n\t* 此命令可将所有“xss记录”转化为加密开启，密码bluelotus，加密方法RC4\n\n\n## 旧版本升级\n### 不保留数据\n如无需保留xss数据，直接删除原平台，重新安装即可\n\n### 保留数据\n1. 备份数据\n2. 删除原平台，重新安装xss平台，配置时，是否加密，加密密码与加密方式需要与以前一样（早期版本，加密方式选AES）\n3. 复制原平台`DATA_PATH`，`MY_JS_PATH`，`JS_TEMPLATE_PATH`对应的目录，覆盖新平台的相应目录\n4. 升级完成\n\n注：\n\n如果重新安装xss平台时，选择的手动安装，升级步骤如下\n\n1. 备份数据\n2. 删除原平台，重新安装xss平台，修改config.php配置，是否加密，加密密码与加密方式需要与以前一样（早期版本，加密方式写AES）\n3. 执行change_encrypt_pass.php完成重加密的过程\n`php change_encrypt_pass.php true bluelotus RC4 (配置文件中是否加密) (配置文件中加密密码) (配置文件中加密方法)`\n4. 修改config.php，修改是否加密，新密码，加密方式\n5. 复制原平台`DATA_PATH`，`MY_JS_PATH`，`JS_TEMPLATE_PATH`对应的目录，覆盖新平台的相应目录\n6. 升级完成\n\n## TODO\n* 支持SAE\n* 多用户（SQL版本）\n* WebSocket方式通知\n\n## src目录说明\n\n* static/js与static/css下的js与css文件已压缩\n* 其中`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`\n* css与js源文件移至src目录下，方便二次开发\n\n## 特别说明\n* 前端使用[Bootstrap](http://getbootstrap.com/)与[jQWidgets](http://www.jqwidgets.com/)开发，（原来用kendo UI，受限于商业许可，改用jQWidgets），`you can use jQWidgets for free under the Creative Commons Attribution-NonCommercial 3.0 License`, 但是不可用于商业用途，如需用于商业用途请购买授权\n* 为实现jqxgrid不支持的功能，如固定表格高度实现row高度自动调节，修改了jQWidgets部分代码，具体修改部分可查看diff文件夹\n* 使用纯真ip库的函数基于Discuz X3.1 function_misc.php上修改而来, 判断客户端操作系统与浏览器的脚本基于原作者@author  Jea杨写的php版本修改而来，后台整体布局借鉴Kendo UI 的demo NORTHWIND DASH\n* js代码格式化使用[js_beautify](https://github.com/beautify-web/js-beautify)库\n* js代码压缩采用jsmin.js\n* js代码编辑器采用[ace](https://ace.c9.io)\n* 安装脚本完全参考[wordpress](https://cn.wordpress.org/)的安装程序\n* **Warning: 本工具仅允许使用在CTF比赛等学习、研究场景，严禁用于非法用途**\n\n## 意见与建议\n\n欢迎大家在使用过程中提出各种宝贵的意见和建议，以及各种bug，不胜感激\n\n反馈邮箱firesun.cn`at`gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FfiresunCN%2FBlueLotus_XSSReceiver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FfiresunCN%2FBlueLotus_XSSReceiver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FfiresunCN%2FBlueLotus_XSSReceiver/lists"}