通過Web安全工具Burp suite找出網站中的XSS漏洞實戰(二)

湯青松發表於2018-10-08

一、背景

筆者6月份在慕課網錄製視訊教程XSS跨站漏洞 加強Web安全,裡面需要講到很多實戰案例,在漏洞挖掘案例中分為了手工挖掘、工具挖掘、程式碼審計三部分內容,手工挖掘篇參考地址為快速找出網站中可能存在的XSS漏洞實踐(一)https://segmentfault.com/a/1190000016095198

本文主要記錄利用Web安全工具Burp suite進行XSS漏洞挖掘部分,分為了設定代理,漏洞掃描,漏洞驗證三個部分,其中permeate滲透測試系統的搭建可以參考第一篇文章。

二、操作概要

  1. 下載工具
  2. 設定代理
  3. 漏洞掃描
  4. 漏洞驗證

三、下載工具

3.1 安裝JDK環境

在本文中是使用的工具burp suite需要JAVA環境才能執行,所以需要事先安裝好JAVA環境,JAVA環境安裝方法本文中再贅述,讀者可以自行搜尋JAVA JDK環境安裝

3.2 下載工具

burp suite的官網地址為:portswigger.net/burp/,開啟官網後可以看到burp分為三個版本,分別是企業版、專業版、社群版本,在本文中筆者所使用的是專業版,參考下載地址如下:

連結: https://pan.baidu.com/s/1H1ScgZTjPosZsdgjJDM4PA 提取碼: s747
複製程式碼

下載並解壓剛才所下載的zip檔案,便能看到資料夾中有一些檔案和資料夾,如下圖所示

image

3.3 工具執行

在上圖中可以看到有一個jar檔案,此檔案便為Java語言所開發,因此只要安裝了JAVA環境即可執行,不管是windows還是mac都可以執行此程式,雙擊BurpUnlimited.jar開啟此程式,開啟之後會有一個提示,如下圖所示

image

在提示框中告知該程式為破解版本,僅用來學習,如果可以請購買正版,這裡點選確定按鈕,會再次看到一個確認介面,任然點選Next按鈕,如下圖所示

image

最後便能看到程式的介面,如下圖所示

image

當開啟程式看到上圖介面時便是已經執行程式成功,下面便將進入burp suite的使用教程。

四、設定代理

現在筆者的工具已經執行成功,接著便開始使用brup suite開始挖掘出XSS漏洞,使用工具挖掘有三個步驟,第一步便是將一些基礎資訊給burp suite,第二步則讓burp suite自行掃描出更多資訊,第三步便是開始正是挖掘.

現在筆者需要給工具提供一些基本資訊,比如域名和URI地址以及cookie資訊和其他各方面的資料;提供的方式有兩種,第一種是自己手動去填寫各項資訊,第二種則是直接抓獲瀏覽器的資料包給burp suite,而手動提供相比較為麻煩,因此筆者這裡通過抓瀏覽器的資料包的方式,讓工具自己去獲得所需的資料;

抓包主要有三個步驟,首先需要讓burp suite開啟代理服務,然後設定瀏覽器的代理地址,最後瀏覽器訪問網址burpsuite便可以看到資料包,具體操作流程如下

4.1 開啟代理

burp suite開啟代理服務比較簡單,筆者將上方選項卡切換到proxy->Options這個位置,可以看到其實工具已經預設其實已經開啟代理服務127.0.0.1地址,如下圖所示

image

在上圖中可以看到了127.0.0.1:8080這個地址,此時已經開啟代理服務,因此不需要再做任何設定。

4.2 瀏覽器設定

現在代理服務已經開啟,接著便是讓瀏覽器的資料經過代理服務,筆者所使用的是谷歌瀏覽器,並安裝了代理外掛,這裡將以外掛設定代理的方式為例,如下圖所示

image

從上圖當中可以看到筆者所設定的協議為http代理,地址為127.0.0.1,埠資訊為8080

4.3 抓包驗證

接下來便是要進行代理的驗證,最簡單的驗證方式便是通過瀏覽器開啟網站,然後檢視burp suite能否抓到資料包,筆者在第一篇文章快速找出網站中可能存在的XSS漏洞實踐(一)(https://segmentfault.com/a/1190000016095198)當中已經安裝好了對應的滲透測試系統,因此不再重複說明,

五、漏洞掃描

在前面的準備操作之後,現在便進入了核心操作環節,用burp suite進行抓包、爬蟲、掃描等操作,分別對應的作用是通過抓包獲取基本資訊、通過爬蟲獲取即將被掃描的網站更多資訊、通過掃描對獲取到的資訊進行暴力測試。

5.1 資料抓包

筆者現在以permeate滲透測試系統的XSS漏洞挖掘為例,首先通過瀏覽器permeate滲透測試系統,URL地址如下:

http://permeate.songboy.net/
複製程式碼

按下Enter鍵之後,瀏覽器此時應該是處於等待狀態,此時回到工具burp suite當中,可以看到已經抓到了資料包,如下圖所示

image

點選工具中的Forward按鈕,便可以將此放開,此時瀏覽器所展現的介面如下圖所示,說明頁面已經被開啟

image

5.2 爬去連結

再次重新整理瀏覽器,依然可以抓取到資料包,這次筆者需要通過burp suite去抓取permeate滲透測試系統中的URL地址,這個過程筆者稱之為爬蟲,操作方式如下圖所示

image

在資料包的位置,右鍵單擊點選,出現選項,點選send to spider之後,便可以在spier選項卡中可以看到如下圖所示

image

在上圖中可以看到burp suite已經找到了permeate中的46個連結地址,接著筆者切換到target選項卡當中,如下圖所示

image

target選項卡下,可以看到爬去到的所有連結地址

5.3 挖掘漏洞

在收集到了permeate滲透測試系統中的大部分URL的地址之後,就可以使用burp suite進行滲透測試工作,在滲透測試中會針對每一個地址進行常規漏洞的測試,包含了SQL隱碼攻擊、XSS跨站、命令執行、CSRF、明文表單、檔案包含等方面的漏洞

本文中筆者以XSS漏洞為例,在target選項卡下,選中對應的域名地址,滑鼠單擊右鍵,便可以看到Actively scan this host這一選項,如下圖所示

image

點選之後該選項之後,便進入下一互動框當中,此時可以去除一些沒有引數的URL地址,筆者這裡勾選後將會去除沒有引數的URL地址,以及字尾為js、gif、jpg、png、css的地址,如下圖所示

image

點選下一步之後,便可以看到篩選後的URL地址,如下圖所示

image

再次點選下一步之後,便開始進行了滲透測試,此時點選選項卡scanner便可以看到掃描的進度以及掃描的結果大致狀態

六、漏洞驗證

工具burp suite在掃描出漏洞之後會給出提示,但提示並不是完全準確,因此還需要人為的驗證

6.1 檢視進度

滲透測試所花費的時間是是由URL數量和網速所決定的,通常需要一定的時間,筆者可以在選項卡Scanner中的子選項卡Scan issue中可以看到滲透測試的進度以及掃描的大致情況,比如有些項當中呈現出紅色,則代表掃描到高危漏洞,如下圖所示

image

6.2 掃描結果

當掃描完成之後,可以在Scanner下的子選項卡Issue activity中看到完整的結果,結果中的紅色表示高危漏洞,橙色表示低危漏洞,灰色則表示提示性安全為題,筆者選中其中一個紅色選項卡,型別為Cross-site scripting,這個便是XSS漏洞,在下方可以看到的具體payload,如下圖所示

image

在payload當中,點選右鍵單擊便可以複製其URL地址,可將其URL地址用於漏洞驗證使用,如下圖所示

image

6.3 漏洞驗證

現在筆者通過瀏覽器人工的驗證一下此payload是否真正存在,剛才筆者已經將帶有payload的地址複製了下來,URL地址如下

http://permeate.songboy.net/home/index.php?m=tiezie2eir%3cscript%3ealert(1)%3c%2fscript%3eftspc&a=index&bk=10
複製程式碼

驗證的時候注意一定不要使用谷歌核心的瀏覽器,因為谷歌核心瀏覽器自帶XSS篩選器,會到導致網站及時存在反射型的XSS也無法復現

因此筆者使用火狐瀏覽器進行漏洞驗證,如下圖所示

image

七、新書推薦

如果對筆者的Web安全文章較為感興趣,可以關注筆者更多文章內容,新書《PHP Web安全開發實戰》,現已在各大平臺銷售,封面如下圖所示

image

作者:湯青松

微信:songboy8888

日期:2018-10-09

相關文章