一、背景
XSS Platform 是一個非常經典的XSS滲透測試管理系統,原作者在2011年所開發,由於后來長時間沒有人維護,導致目前在PHP7環境下無法運行。
筆者最近花了一點時間將源碼移植到了PHP7環境中,同時增加安裝功能;另外還修復之前的代碼的一些不嚴謹語法的問題,並調整了一些表單的樣式,同時將源代碼放到GitHub當中,給有需要的同行研究,為了簡化安裝步驟,特意寫一篇文章來幫助大家。
二、操作概要
- 獲取源碼
- 安裝配置
- 攻擊測試
三、下載源碼
github地址:https://github.com/78778443/xssplatform
首先通過cd命令將代碼放到指定位置,參考命令如下
cd /Users/song/mycode/safe/
之后通過git下載源碼,參考命令如下:
git clone https://github.com/78778443/xssplatform.git
四、安裝配置
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讓其配置生效,重啟命令參考如下:
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/
,打開后會自動跳轉到安裝界面,如下圖所示
點擊 我同意此協議
按鈕之后,將跳轉到第二步的填寫配置信息界面,在此界面需要填寫數據庫信息,和管理員賬號信息,如下圖所示
如果數據庫信息填寫無誤,將會看到導入數據成功的提,如下圖所示
此時便代表安裝成功
4.4 功能簡介
先來熟悉一些XSS Platform的一些功能,在安裝完成界面點擊進入首頁,會要求先登錄,在登錄界面輸入剛才安裝時所填寫的管理員賬號信息,點擊登錄即可,登錄成功之后會自動跳轉到首頁,如下圖所示
在首頁中可以看到有一個默認項目,點擊default
后可以看到受害者列表,不過剛剛安裝肯定是還沒有數據的,如下圖所示
在圖中右上方有一個查看代碼的鏈接,點擊進去便可以查看XSS Platform預備好的攻擊代碼,如下圖所示
五、攻擊測試
現在筆者將正是開始進行一些實踐演示,首先會找出一個permeate滲透測試系統的XSS漏洞,將XSS Platform的攻擊代碼插入進去;
然后模擬受害者訪問到被攻擊的頁面,會到XSS platform系統中查看收到的cookie值,最后使用接收到的cookie來冒充受害者。
permeate 滲透測試系統源碼和搭建教程地址可以參考:https://github.com/78778443/permeate
5.1 插入XSS代碼
筆者此前已經將permeate滲透測試系統搭建成功,下面將在此系統發表一個帖子,並在帖子標題中插入XSS Platform
中預備好的攻擊代碼,如下圖所示
點擊發表按鈕,便將帖子發布成功,此時假定自己為受害者,訪問了此帖子列表,在列表中會讀取帖子的標題,帖子<script>
標簽別瀏覽器執行便不會顯示出來,如下圖所示
5.2 接收cookie
可以看到並沒有顯示出來,再回到XSS Platform當中,查看default
項目中的受害者列表,可以看到一個受害者,如下圖所示
說明受害者已經成功中招,並且通過攻擊代碼已經獲取到對方的cookie值和header信息
5.3 替換cookie
有了cookie值之后,筆者將使用另外一個瀏覽器,通過修改cookie的方式來登錄受害者的賬戶,如下圖修改cookie的操作
再次刷新時,已經變成了登錄身份,如下圖所示