Web安全之XSS Platform搭建及使用實踐

1、背景

XSS Platform 是一個很是經典的XSS滲透測試管理系統,原做者在2011年所開發,因爲後來長時間沒有人維護,致使目前在PHP7環境下沒法運行。php

筆者最近花了一點時間將源碼移植到了PHP7環境中,同時增長安裝功能;另外還修復以前的代碼的一些不嚴謹語法的問題,並調整了一些表單的樣式,同時將源代碼放到GitHub當中,給有須要的同行研究,爲了簡化安裝步驟,特地寫一篇文章來幫助你們。html

2、操做概要

  1. 源碼下載
  2. 安裝配置
  3. 攻擊測試

3、下載源碼

github地址:https://github.com/78778443/xssplatformnginx

首先經過cd命令將代碼放到指定位置,參考命令以下git

cd /Users/song/mycode/safe/

以後經過git下載源碼,參考命令以下:github

git clone https://github.com/78778443/xssplatform.git

4、安裝配置

4.1 增長虛擬主機

XSS Platform 須要在根目錄中運行,所以須要單獨添加一個虛擬主機,筆者以nginx環境爲例,配置虛擬主機的配置代碼以下所示:數據庫

server {
    listen       80;
    server_name  xss.localhost;
    root  /Users/song/mycode/safe/xssplatform/;


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

    location / {

        index index.html index.htm index.php;
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

}

修改配置文件後,須要重啓nginx讓其配置生效,重啓命令參考以下:vim

nginx -s reload

4.2 添加HOST記錄

hosts文件位置是/etc/hosts,經過vim命令進行編輯,參考命令以下所示:瀏覽器

vim /etc/hosts

在文件中添加一行記錄,內容以下所示:安全

127.0.0.1   xss.localhost

4.3 系統安裝

經過前面添加虛擬主機和添加host解析以後,即可以經過瀏覽器訪問此平臺,URL地址爲http://xss.localhost/,打開後會自動跳轉到安裝界面,以下圖所示微信

image

點擊 我贊成此協議按鈕以後,將跳轉到第二步的填寫配置信息界面,在此界面須要填寫數據庫信息,和管理員帳號信息,以下圖所示

image

若是數據庫信息填寫無誤,將會看到導入數據成功的提,以下圖所示

image

此時便表明安裝成功

4.4 功能簡介

先來熟悉一些XSS Platform的一些功能,在安裝完成界面點擊進入首頁,會要求先登陸,在登陸界面輸入剛纔安裝時所填寫的管理員帳號信息,點擊登陸便可,登陸成功以後會自動跳轉到首頁,以下圖所示

image

在首頁中能夠看到有一個默認項目,點擊default後能夠看到受害者列表,不過剛剛安裝確定是尚未數據的,以下圖所示

image

在圖中右上方有一個查看代碼的連接,點擊進去即可以查看XSS Platform預備好的攻擊代碼,以下圖所示

image

5、攻擊測試

如今筆者將正是開始進行一些實踐演示,首先會找出一個permeate滲透測試系統的XSS漏洞,將XSS Platform的攻擊代碼插入進去;

而後模擬受害者訪問到被攻擊的頁面,會到XSS platform系統中查看收到的cookie值,最後使用接收到的cookie來冒充受害者。

permeate 滲透測試系統源碼和搭建教程地址能夠參考:https://github.com/78778443/permeate

5.1 插入XSS代碼

筆者此前已經將permeate滲透測試系統搭建成功,下面將在此係統發表一個帖子,並在帖子標題中插入XSS Platform中預備好的攻擊代碼,以下圖所示

image

點擊發表按鈕,便將帖子發佈成功,此時假定本身爲受害者,訪問了此帖子列表,在列表中會讀取帖子的標題,帖子<script>標籤別瀏覽器執行便不會顯示出來,以下圖所示

image

5.2 接收cookie

能夠看到並無顯示出來,再回到XSS Platform當中,查看default項目中的受害者列表,能夠看到一個受害者,以下圖所示

image

說明受害者已經成功中招,而且經過攻擊代碼已經獲取到對方的cookie值和header信息

5.3 替換cookie

有了cookie值以後,筆者將使用另一個瀏覽器,經過修改cookie的方式來登陸受害者的帳戶,以下圖修改cookie的操做
image

再次刷新時,已經變成了登陸身份,以下圖所示
image

6、圖書推薦

若是對筆者的文章較爲感興趣,能夠關注筆者新書《PHP Web安全開發實戰》,現已在各大平臺上架銷售,封面以下圖所示

image


做者:湯青松

日期:2018-12-08

微信:songboy8888

相關文章
相關標籤/搜索