使用Fiddler的X5S插件查找XSS漏洞

OWASP top 10的安全威脅中的CrossSite Scripting(跨站腳本攻擊),容許攻擊者經過瀏覽器往網站注入惡意腳本。這種漏洞常常出如今web應用中須要用戶輸入的地方,若是網站有XSS漏 洞,攻擊者就能夠經過這種漏洞向瀏覽網站的用戶發送惡意腳本,同時也能夠利用該漏洞偷取sessionid,用來劫持用戶賬戶的會話。web

因此網站開發者必須針對這種攻擊進行適當的測試,必須過濾網站的每一個輸入及輸出。爲了使漏洞檢測更容易,也可使用各類掃描器,有不少自動或手動工 具能夠幫咱們查找這些漏洞。X5S就是一款用來測試XSS漏洞的工具,它是Fiddler的一個插件,是一個WebDebugging Proxy。瀏覽器

X5S是專門幫助滲透測試人員查找網站的XSS漏洞的。這裏須要先說明的是,該工具不是自動化工具,只是列出哪裏可能存在XSS漏洞,因此要使用該 工具,讀者須要瞭解XSS,知道什麼樣的編碼可能致使產生XSS漏洞。該工具只針對有經驗的滲透測試人員,由於他們知道如何利用編碼漏洞插入惡意腳本。安全

在本文中,咱們能夠看到如何使用包含x5s插件的Fiddler,以及如何找到網站中的漏洞。cookie

Fiddler:Fiddler是一款流行的Webdebugging proxy工具,能夠監視與記錄用戶PC與網站之間的流量,便可以經過log文件審查流量,也能夠調試基於Java和.NET的HTTP相關的應用程序。固然,Fiddler對全部用戶免費。session

Fiddler也支持與瀏覽器相結合,使其更易使用。支持的瀏覽器包括IE、GoogleChrome、Safari、MozillaFirefox、Opera等。xss

圖1Fiddler截圖顯示了左側的流量日誌工具

讀者能夠從這裏下載Fiddler。在Fiddler中,能夠找到許多標籤,用來分析流量與包的行爲。本文不涉及如何分析流量的知識,主要是演示得用X5S挖掘XSS漏洞。測試

X5SX5SFiddler中的一個插件,使用fiddler的包記錄技術,並經過在每一個請求中添加一條序文(Preamble),來找出包中的哪些請求可能存在XSS漏洞。但用戶須要瞭解XSSencoding編碼知識,由於全部和XSS相關的工做都要手動完成。 基本上X5S就是去檢測須要用戶輸入的地方有沒有被正確編碼。有時Unicode字符轉換可能bypass一些安全過濾,因此也會檢測這種字符轉換。

該插件會查看URL中的請求和響應,以後嘗試注入XSSpayloads來肯定是否存在XSS漏洞。若是讀者知道如何運行某處的代碼,就會發現挖掘XSS漏洞仍是挺容易的。網站

另外,讀者須要知道的是,該工具基本上只能檢測反射型XSS問題,不能檢測基於DOM的XSS漏洞,也不能檢測存儲型XSS,由於這種漏洞的數據不會在請求和響應的參數中出現。要想檢測這兩種漏洞,讀者須要用額外的工具。編碼

要想使用X5S挖掘Web應用程序中的XSS漏洞,能夠從如下鏈接下載X5S並安裝,安裝以前記得確保已經安裝了Fiddler:

下載 X5S

安裝完後,啓動Fiddler,就能夠看到X5S標籤了,以下圖所示:

圖2Fiddler中的X5S標籤

能夠看到X5S標籤已經添加到Fiddler中了。若是讀者在本身的Fiddler中看不到Watcher標籤,沒必要擔憂,watcher只是fiddler的另外一個插件,用來進行XSS測試。本文只對X5S感興趣,只討論該插件。

配置

在開始挖掘XSS漏洞以前,咱們須要對X5S進行適當配置。首先是進入Fiddler,打開X5S標籤,選擇頂部的enable複選框,以後在 Preamble文本框輸入XSS。這裏能夠輸入任意單詞,但要確保不是常見的詞,X5S會用該選項注入請求的每一個參數中。接下來選擇 「EnableDomain Name Targeting」前面的複選框,並添加域名,這裏能夠添加全部想要測試的域名,並且能夠添加多個,徹底取決於用戶。

另外別忘了選中「Request」和「Responses」前面的複選框,並在「AutoInjection Options」下選中全部複選框。

圖3X5s配置

下面進行測試用例配置

測試用例配置

X5S的標籤下面還有三個子標籤,單擊第二個「TestCase Configuration」。

在該標籤下能夠配置X5S的測試用例,即探測字符,包含三種類型:

可轉換測試用例:探測字符多是大寫的、小寫的、以及轉換爲其它形式。 傳統測試用例: XSS注入使用的字符。這些注入字符包括」、’、<和>。讀者應該已經知道,若是不通過適當過濾,這些字符多是引發XSS漏洞的主要問題所在。 超長UTF-8測試用例:這種測試用例會注入non-shortestUTF-8編碼或傳統測試用例,例如ASCII字符<的UTF-8格式爲0x3C

選擇想要測試的字符。這裏能夠選擇任意多個,或直接全選。以後就能夠開始XSS攻擊,挖掘注入點了。

圖4X5S測試用例配置

爲了演示效果,這裏我添加了一個包含XSS漏洞的域名。但爲了安全起見,本文把網站的域名隱藏了。

下面開始一個頁面一個頁面地測試全部forms,並在Result標籤查看掃描結果。若是顯示搜索結果,說明網站可能存在XSS漏洞。單擊其中的任意一條掃描結果,能夠在下面的文本區域查看細節描述。

圖5X5S fiddler中的XSS掃描結果

選擇某條結果,下面的文本區域就會顯示細節描述,如加上XSS字符後是如何發現preamble的。查看細節描述並分析,描述中的紅字部分,顯示了頁面中preamble的信息。

下一步要作的就是查找疑似包含漏洞的URL。Fiddler左側記錄了以前訪問過的URL,咱們要作的就是找出包含漏洞的URL請求。查看記錄,找到用灰色高亮的請求地址。

以下圖所示,爲了安全起見,這裏把URL信息隱藏了。

圖6包含可疑preamble信息的URL請求

能夠看到紅框內的URL用亮灰色高亮顯示了。右擊該條記錄,選擇copy下的「JustURL」,拷貝該請求URL。

圖7 拷貝請求URL

打開瀏覽器,將該地址拷貝到瀏覽器,並用本身的XSS payloads替換地址中的preamble字符。讀者可使用如下XSS payloads:

<script>alert(1)</script> 「><script>alert(1)</script> </style><script>alert(1)</script> 「)</script><script>alert(1)</script> 「><img src=」a」     onerror=」prompt>

這種狀況下有不少XSS payloads可用,上文中的這些payloads若是顯示一個Javascript警告框並顯示1,就說明執行成功了。由於在payloads中插入 了alert(1),彈出了對話框就表示網站執行了咱們的自定義腳本,也就是說該站存在XSS漏洞。

圖8 用Fiddler與X5S找到XSS漏洞

下面測試是否能在alert對話框中顯示cookies,只須要將alert(1)替換成alert(document.cookie)便可。

若是在alert對話框中顯示了cookies,那說明這是一個比較嚴重的漏洞,攻擊者能夠利用該漏洞劫持用戶的sessions以劫持用戶賬戶,可能對用戶或網站形成損害。

這是利用X5S查找網站反射型XSS漏洞的最簡單演示,顯示了X5S對滲透測試人員的重要性。

爲何滲透測試人員不使用該工具

許多滲透測試人員不推薦該工具,惟一的緣由是當今已經有不少集成了各類掃描技術的掃描工具,這些掃描器能夠爬行(crawl)網站的全部URL並列出發現的全部漏洞,大部分掃描器都很棒。而該工具只能檢測反射型XSS漏洞。

同時該工具花費的時間也比較長,由於咱們必須手動檢測每一個URL,有可能錯過某個包含XSS漏洞的頁面,就沒辦法對這個頁面進行檢測了,所以也有可能在浪費了大量時間後因軟件的侷限性沒有發現漏洞。

可是咱們發現仍有許多滲透測試人員常用這個工具,這徹底取決於測試人員本身的選擇。不過我仍建議讀者試試這個工具,若是用得順手,能夠繼續用該 工具查找WEB應用程序中的XSS漏洞。做爲初學者,讀者可使用該工具提升關於XSS payloads的相關知識,有時咱們可能要花費數小時才能exploit某個可疑的漏洞。

總結:

X5S是一個很不錯的Fiddler插件,能夠用做查找XSS漏洞的滲透測試工具。不過只有理解了XSS的基本原理,以及存在多少種方法注入 Javascript代碼以後再使用該工具。若是用戶不擅長手工XSS測試,該工具無疑只是個雞肋。但對專業XSS測試人員,使用該工具多是查找web 應用的XSS漏洞的最快方式。經過本文的示例可知,該工具找到了全部可能存在XSS漏洞的可疑熱點(hotspots),用戶只須要測試這些熱點,並確認 哪裏能夠執行外部腳本,若是能夠注入就表示成功了。不然就繼續測試,直到測試完全部的XSS payloads。只有有經驗的滲透測試人員能確認某個可疑網站是否存在XSS漏洞,由於他們能更好地理解web應用的輸出和注入的payloads的行 爲反饋。

咱們已經知道使用這個工具以前須要有至關的經驗,同時也須要不少時間去打開每一個URL檢測其中的全部forms,來檢測XSS漏洞是否存在,是一個 很費時間的過程。而這些東西在自動漏洞掃描器中都是自動完成了,使該工具只有少數研究者和測試人員使用,但其仍可做爲一個不錯的開端。

 

原文地址:http://resources.infosecinstitute.com/using-x5s-with-fiddler-to-find-xss-vulnerabilities/

相關文章
相關標籤/搜索