XSS 平台搭建与优化(基于 xsser.me 源码)
admin
2023-03-15 22:01:15
0

本文引用于:征途源码论坛(www.zhengtuwl.com)-----专注各类免费精品×××的平台

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


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

为什么选择这个呢,主要是因为作者用 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

RewriteEngine OnRewriteBase /
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.cn和is.gd的短地址转换,对应函数在source/function.php中的第350行和357行。由于is.gd的 api 地址已经失效,所以我决定把这一块内容去掉。

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

     
   

        
              _tpl_vars['shortShow1']; ?>    
   


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

$shortUrl2=LongUrltoShortUrl2($longUrl);//短网址2$shortShow2=StripStr("");
2. 去掉JS地址后面的时间戳

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

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

//$codeurl=URL_ROOT."/{$project[urlKey]}?".time();
$codeurl=URL_ROOT."/{$project[urlKey]}";
//$scriptShow1=StripStr("'\">
");
$scriptShow2=StripStr("");
3. HTML 部分优化

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

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


//修改为:


//修改为:

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

PPS.其实引用的 Javascript 文件最好放在的最后,但这里需要手动找到所有的 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 ,找到下面内容:

  • _tpl_vars['ck']; ?> : 
    _tpl_vars['c']; ?>

  • 修改为:
  • _tpl_vars['ck']; ?> : 

    _tpl_vars['c']; ?>



  • 修改为:


    修改为:  
    复制

    当某一条记录没有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这个插件。下面是调用代码:


    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啦~");  
            }
        }
    );

    这样就大功告成了~


    相关内容

    热门资讯

    ICC逮捕令致内塔尼亚胡出行受... 【环球网报道】据以色列《新消息报》网站26日报道,由于国际刑事法院(ICC)2024年就以色列在巴勒...
    “罗永浩怒斥电视机厂商”戳中了... 7月25日晚,罗永浩发文怒斥当下电视机的产品设计。据都市快报报道,罗永浩表示,他为家中老人换了两次电...
    各地各部门坚持人民至上筑牢防汛... 新华社北京7月25日电 题:风雨同舟映初心——各地各部门坚持人民至上筑牢防汛抗洪坚实堤坝新华社记者当...
    法院回应LV起诉地产开发商 7月26日,厦门市湖里区人民法院发布情况通报,网传案情“路易威登公司起诉地产开发商,因楼盘外立面四叶...
    携程的问题不仅在于垄断,更在于... 国内平台科技企业一般都是通过向B端收费、抽佣获利,尽量给消费者创造一个比较清爽的使用环境。携程算是最...
    海信电视用遥控器关闭后打不开 原因可能是遥控器的电池没有装好或者是没电了,需要重新安装一下电池或者更换新的电池试一试;原因可能是电...
    电视机突然没电源打不开了 有可能是电视开关的电源线断了;可能是电视在使用时短路;可能是电源插头插座松动;可能是电视内部零件接触...
    电热水器下面那个小龙头漏水是怎... 电热水器下面那个小龙头漏水是怎么回事?1、因为安全阀发生了故障或者是已经被损坏了,就会有漏水的现象;...
    回答下电脑桌面一片空白怎么恢复 电脑桌面上如果是一片空白,那说明您的电脑图标被隐藏了,想要恢复就要按照如下的三个步骤去操作才行。 第...
    澳总理要找特朗普“理论”关税:... 当地时间7月26日,澳大利亚总理阿尔巴尼斯表示,他将直接向美国总统特朗普提出抗议,反对美国新近宣布的...