天天看點

WEB 伺服器調試利器 -- Tamper Data

一. 簡介

      作為 Firefox 的插件, Tamper Data 簡單易用,功能強大,可以用來檢視和修改 HTTP/HTTPS 的頭部和 POST 參數;可以用來跟蹤 HTTP 請求和響應并記時;可以對 WEB 站點進行某些安全測試,進而為調試 WEB 配置帶來了極大的便利,是網站維護人員不可多得的實用工具。

二. 安裝

      Tamper Data 的安裝很簡單,如下所示:

        第二步:進入 Tamper Data 安裝頁面後,找到下面的位置并點選,開始安裝:

         第三步:安裝完後後,可以在 Firefox 菜單欄的“工具”菜單項裡面找到 Tamper Data,如下圖所示:

三. 使用

      Tamper Data 的使用也比較簡單,下面介紹了其主要的用法:

      點選 Firefox 菜單欄上“工具”菜單項裡面的“Tamper Data”,就會彈出 Tamper Data 的主視窗,如下圖所示:

        可以看出,其主視窗主要分成三部分,分别如圖中的 1,2,3 所示。當我們打開 Tamper Data 後,我們浏覽網頁時發出的每一個 HTTP 請求及其對應的響應都會被 Tamper Data 記錄下來。第 1 部分顯示每一個 HTTP 請求及其對應的 HTTP 響應的概要資訊,其中包括了大量有用的資訊,比如頁面元素大小,HTTP 請求的方法,HTTP 響應的狀态值,等等。最值得注意的是“Duration”和“Total Duration”這兩個字段的值,他們顯示出了打開每一個頁面元素所花費的時間和打開該頁面花費的總時間。根據這些時間值,就可以判斷出打開我們頁面的速度如何,是哪些頁面元素影響了整個頁面打開的速度,進而為我們進一步優化頁面提供寶貴的資訊。當我們在第 1 部分選中某條概要資訊後,第 2 部分會顯示出對應的 HTTP 請求的頭部資訊,第 3 部分會顯示出對應的 HTTP 響應的頭部資訊。

        如果我們比較喜歡檢視圖型化的統計資訊,那麼可以在 Tamper Data 主視窗的第 1 部分單擊右鍵,在彈出的菜單上點選“Graph All”,如下圖所示,那麼這些每個頁面元素及其打開它們所花費的時間,就會以圖形的方式,直覺地顯示出來。具體的圖形,就不提供了。

        接下來,我們看看幾個實際的例子。

        第一個例子:我們把 APACHE 配置為,當使用者第一次浏覽我們的網站時,向使用者的浏覽器寫入一個 Cookie,以友善對他們的通路行為的跟蹤,然後,我們需要驗證配置是否正确。于是,我們開啟 Tamper Data,然後再通路我們網站的某個頁面,接着分析 Tamper Data 所記錄的資料。可以從第 3 個視窗看到,我們的 APACHE 伺服器确實向我們的浏覽器寫入了預先配置的 Cookie,如下圖所示:

        接下來,我們去體會 Tamper Data 的真實含義,即“篡改資料”(或者說定制 HTTP 請求):截取浏覽器發出的每一個 HTTP 請求,提示我們選擇是要進行定制,還是不做定制而直接送出請求,還是終止目前被截取的請求,然後根據我們的選擇決定是打開定制視窗,還是直接向 WEB 伺服器送出請求,還是終止目前的請求。

        預設情況下,Tamper Data 不會截取對圖檔的請求,是以,如果我們需要對擷取圖檔的請求進行定制,那麼需要一點點修改,點選 Tamper Data 主視窗上的“Option”,會出現下面的視窗,勾選“Tamper with Images etc.”就可以了。

        順便提一下,從下面視窗的内容可以看出,Tamper Data 還提供了一些進行 XSS(跨站腳本)攻擊和 SQL 注入攻擊的代碼,而且允許我們加入自己的攻擊代碼,極大地友善了我們對 WEB 站點進行安全測試。

        是該進行“Tamper”的時候了。

     點選 Tamper Data 主視窗上的“Start Tamper”,開啟對 HTTP 請求的截取。

        一旦開啟了對 HTTP 請求的截取,對于浏覽器發出的每一個請求,Tamper Data 都會截取,然後顯示出下面的視窗,要求我們作出選擇:

        在此我們選擇“Tamper”,準備對 HTTP 請求進行定制,對我們的 WEB 伺服器配置進行測試和調試。

        點選率“Tamper”之後,會出現下面的視窗。可以看到,視窗的頂部,顯示目前被截獲的 HTTP 請求,左邊視窗顯示的是浏覽器發出的 HTTP 請求的頭部各字段,右邊視窗顯示的是浏覽器發出的 HTTP 請求的  POST 參數。在這兩個視窗裡面,我們可以修改浏覽器送出的 HTTP 請求頭部字段/POST 參數,删除某些 浏覽器送出的 HTTP 請求頭部字段/POST 參數,或者添加其他合法的 HTTP 請求頭部字段/POST 參數。很強大吧?

        現在,我們想測試自己配置的圖檔防盜鍊是否正常起作用。于是我們添加一個 Referer 頭部字段,并輸入 [url]www.cisco.com[/url] ,如下圖所示,點選“OK”送出後,發現我們的請求被重定向到 go_way.html 頁面,可見我們的配置是正确的。

        下面是測試我們配置的防惡意浏覽器通路。在下面的視窗,修改浏覽器送出的 User-Agent 字段,将其設定為我們禁止的惡意通路浏覽器之一,比如 sogou spider,點選“OK”送出後,發現我們的請求被禁止了,可見我們的配置是正确的。

        這樣的例子,還可以寫很多,在此就不再講述了。有興趣的讀者可以去深入研究 Tamper Data。

四. 總結

       Tamper Data 是我見過的最好用的 WEB 調試工具之一,既可以統計每個頁面及其元素的打開速度,又可以定制 HTTP 請求,對我們的網站進行安全測試。作為網站維護人員,實在是有必要掌握它,為自己的兵器庫增加一種厲害的兵器。

附:本文提到的 APACHE 配置,可以參考我的另外一篇文章《我這樣裝 APACHE 》

本文轉自zkjian517 51CTO部落格,原文連結:http://blog.51cto.com/zoukejian/62057