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

OWASP top 10的安全威脅中的CrossSite Scripting(跨站腳本***),允許***者通過瀏覽器往網站注入惡意腳本。這種漏洞經常出現在web應用中需要用戶輸入的地方,如果網站有XSS漏 洞,***者就可以通過這種漏洞向瀏覽網站的用戶發送惡意腳本,同時也可以利用該漏洞偷取sessionid,用來劫持用戶帳戶的會話。

所以網站開發者必須針對這種***進行適當的測試,必須過濾網站的每個輸入及輸出。爲了使漏洞檢測更容易,也可以使用各種掃描器,有很多自動或手動工 具可以幫我們查找這些漏洞。X5S就是一款用來測試XSS漏洞的工具,它是Fiddler的一個插件,是一個WebDebugging Proxy。

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

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

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

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

13965093781678.png%21small

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

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

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

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

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

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

下載 X5S

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

13965093817357.jpg%21small

圖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”下選中所有複選框。

13965093843241.jpg%21small

圖3X5s配置

下面進行測試用例配置

測試用例配置

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

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

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

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

13965093867583.jpg%21small

圖4X5S測試用例配置

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

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

13965093889997.png%21small

圖5X5S fiddler中的XSS掃描結果

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

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

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

13965093898052.png%21small

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

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

13965093901682.png%21small

圖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漏洞。

13965093924102.png%21small

圖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漏洞是否存在,是一個 很費時間的過程。而這些東西在自動漏洞掃描器中都是自動完成了,使該工具只有少數研究者和測試人員使用,但其仍可作爲一個不錯的開端。


再奉上fiddler的使用說明書:http://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章