筆者6月份在慕課網錄製視頻教程XSS跨站漏洞 增強Web安全,裏面須要講到不少實戰案例,在漏洞挖掘案例中分爲了手工挖掘、工具挖掘、代碼審計三部份內容,手工挖掘篇參考地址爲快速找出網站中可能存在的XSS漏洞實踐(一)https://segmentfault.com/a/1190000016095198
php
本文主要記錄利用Web安全工具Burp suite進行XSS漏洞挖掘部分,分爲了設置代理,漏洞掃描,漏洞驗證三個部分,其中permeate
滲透測試系統的搭建能夠參考第一篇文章。css
在本文中是使用的工具burp suite須要JAVA環境才能運行,因此須要事先安裝好JAVA環境,JAVA環境安裝方法本文中再贅述,讀者能夠自行搜索JAVA JDK環境安裝
;html
burp suite的官網地址爲:portswigger.net/burp/,打開官網後能夠看到burp分爲三個版本,分別是企業版、專業版、社區版本,在本文中筆者所使用的是專業版,參考下載地址以下:segmentfault
連接: https://pan.baidu.com/s/1H1ScgZTjPosZsdgjJDM4PA 提取碼: s747
複製代碼
下載並解壓剛纔所下載的zip文件,便能看到文件夾中有一些文件和文件夾,以下圖所示 windows
在上圖中能夠看到有一個jar文件,此文件便爲Java語言所開發,所以只要安裝了JAVA環境便可運行,不論是windows仍是mac均可以運行此程序,雙擊BurpUnlimited.jar
打開此程序,打開以後會有一個提示,以下圖所示瀏覽器
在提示框中告知該程序爲破解版本,僅用來學習,若是能夠請購買正版,這裏點擊肯定
按鈕,會再次看到一個確認界面,任然點擊Next
按鈕,以下圖所示安全
最後便能看到程序的界面,以下圖所示bash
當打開程序看到上圖界面時即是已經運行程序成功,下面便將進入burp suite的使用教程。微信
如今筆者的工具已經運行成功,接着便開始使用brup suite
開始挖掘出XSS漏洞,使用工具挖掘有三個步驟,第一步即是將一些基礎信息給burp suite
,第二步則讓burp suite
自行掃描出更多信息,第三步即是開始正是挖掘.cookie
如今筆者須要給工具提供一些基本信息,好比域名和URI地址以及cookie信息和其餘各方面的數據;提供的方式有兩種,第一種是本身手動去填寫各項信息,第二種則是直接抓獲瀏覽器的數據包給burp suite,而手動提供相比較爲麻煩,所以筆者這裏經過抓瀏覽器的數據包的方式,讓工具本身去得到所需的數據;
抓包主要有三個步驟,首先須要讓burp suite
開啓代理服務,而後設置瀏覽器的代理地址,最後瀏覽器訪問網址burpsuite即可以看到數據包,具體操做流程以下
burp suite
開啓代理服務比較簡單,筆者將上方選項卡切換到proxy
->Options
這個位置,能夠看到其實工具已經默認其實已經開啓代理服務127.0.0.1
地址,以下圖所示
在上圖中能夠看到了127.0.0.1:8080
這個地址,此時已經開啓代理服務,所以不須要再作任何設置。
如今代理服務已經打開,接着即是讓瀏覽器的數據通過代理服務,筆者所使用的是谷歌瀏覽器,並安裝了代理插件,這裏將以插件設置代理的方式爲例,以下圖所示
從上圖當中能夠看到筆者所設置的協議爲http代理,地址爲127.0.0.1,端口信息爲8080
接下來即是要進行代理的驗證,最簡單的驗證方式即是經過瀏覽器打開網站,而後查看burp suite
可否抓到數據包,筆者在第一篇文章快速找出網站中可能存在的XSS漏洞實踐(一)(https://segmentfault.com/a/1190000016095198
)當中已經安裝好了對應的滲透測試系統,所以再也不重複說明,
在前面的準備操做以後,如今便進入了核心操做環節,用burp suite
進行抓包、爬蟲、掃描等操做,分別對應的做用是經過抓包獲取基本信息、經過爬蟲獲取即將被掃描的網站更多信息、經過掃描對獲取到的信息進行暴力測試。
筆者如今以permeate
滲透測試系統的XSS漏洞挖掘爲例,首先經過瀏覽器permeate滲透測試系統,URL地址以下:
http://permeate.songboy.net/
複製代碼
按下回車鍵以後,瀏覽器此時應該是處於等待狀態,此時回到工具burp suite
當中,能夠看到已經抓到了數據包,以下圖所示
點擊工具中的Forward
按鈕,即可以將此放開,此時瀏覽器所展示的界面以下圖所示,說明頁面已經被打開
再次刷新瀏覽器,依然能夠抓取到數據包,此次筆者須要經過burp suite
去抓取permeate
滲透測試系統中的URL地址,這個過程筆者稱之爲爬蟲,操做方式以下圖所示
在數據包的位置,右鍵單擊點擊,出現選項,點擊send to spider
以後,即可以在spier選項卡中能夠看到以下圖所示
在上圖中能夠看到burp suite已經找到了permeate中的46個連接地址,接着筆者切換到target
選項卡當中,以下圖所示
在target
選項卡下,能夠看到爬去到的全部連接地址
在收集到了permeate
滲透測試系統中的大部分URL的地址以後,就可使用burp suite
進行滲透測試工做,在滲透測試中會針對每個地址進行常規漏洞的測試,包含了SQL注入、XSS跨站、命令執行、CSRF、明文表單、文件包含等方面的漏洞
本文中筆者以XSS漏洞爲例,在target
選項卡下,選中對應的域名地址,鼠標單擊右鍵,即可以看到Actively scan this host
這一選項,以下圖所示
點擊以後該選項以後,便進入下一交互框當中,此時能夠去除一些沒有參數的URL地址,筆者這裏勾選後將會去除沒有參數的URL地址,以及後綴爲js、gif、jpg、png、css的地址,以下圖所示
點擊下一步以後,即可以看到篩選後的URL地址,以下圖所示
再次點擊下一步以後,便開始進行了滲透測試,此時點擊選項卡scanner即可以看到掃描的進度以及掃描的結果大體狀態
工具burp suite
在掃描出漏洞以後會給出提示,但提示並非徹底準確,所以還須要人爲的驗證
滲透測試所花費的時間是是由URL數量和網速所決定的,一般須要必定的時間,筆者能夠在選項卡Scanner
中的子選項卡Scan issue
中能夠看到滲透測試的進度以及掃描的大體狀況,好比有些項當中呈現出紅色,則表明掃描到高危漏洞,以下圖所示
當掃描完成以後,能夠在Scanner
下的子選項卡Issue activity
中看到完整的結果,結果中的紅色表示高危漏洞,橙色表示低危漏洞,灰色則表示提示性安全爲題,筆者選中其中一個紅色選項卡,類型爲Cross-site scripting
,這個即是XSS漏洞,在下方能夠看到的具體payload,以下圖所示
在payload當中,點擊右鍵單擊即可以複製其URL地址,可將其URL地址用於漏洞驗證使用,以下圖所示
如今筆者經過瀏覽器人工的驗證一下此payload是否真正存在,剛纔筆者已經將帶有payload的地址複製了下來,URL地址以下
http://permeate.songboy.net/home/index.php?m=tiezie2eir%3cscript%3ealert(1)%3c%2fscript%3eftspc&a=index&bk=10
複製代碼
驗證的時候注意必定不要使用谷歌內核的瀏覽器,由於谷歌內核瀏覽器自帶XSS篩選器,會到致使網站及時存在反射型的XSS也沒法復現
所以筆者使用火狐瀏覽器進行漏洞驗證,以下圖所示
若是對筆者的Web安全文章較爲感興趣,能夠關注筆者更多文章內容,新書《PHP Web安全開發實戰》,現已在各大平臺銷售,封面以下圖所示
做者:湯青松
微信:songboy8888
日期:2018-10-09