WebScarab 代理插件
代理插件
代理插件設置了一個HTTP代理,默認情況下在localhost端口8008上進行監聽。為了使用此監聽器,您應該將瀏覽器配置為將WebScarab用作上游代理。完成此操作后,您瀏覽器發出的任何請求都將通過webScarab進行路由,并將被記錄和分析。
WebScarab還支持攔截SSL加密的HTTPS請求。如果將瀏覽器配置為使用WebScarab進行SSL請求,則WebScarab將使用其自己不受信任的SSL服務器證書來與瀏覽器協商加密會話,以便讀取瀏覽器向“安全”服務器發出的請求。自然,由于WebScarab使用的證書不受您的瀏覽器信任,因此您的瀏覽器應警告您該證書不受信任,并提供繼續選項。
注意:這種觀察您的瀏覽器通過SSL連接發送的內容的能力并不表示“ SSL已被破壞”。您的瀏覽器應該已經給您必要的警告。如果選擇忽略警告,則說明SSL并非故障。
代理偵聽器
WebScarab支持多個HTTP偵聽器。偵聽器允許您指定偵聽器偵聽的IP地址和端口。
注意:默認情況下,WebScarab僅在localhost上偵聽,以消除未經授權的匿名代理的可能性。
WebScarab允許您為偵聽器指定“基址”。基地址指示偵聽器充當反向代理,并且應將其格式設置為HTTP或HTTPS URL。在這種模式下,它將充當Web服務器,而不是代理服務器,并將通過串聯基本URL和出現在請求行中的路徑來構造URL。如果基本URL是HTTPS URL,它將在嘗試從瀏覽器讀取請求之前立即協商SSL隧道。對于使用不支持配置上游代理的基于HTTP的自定義客戶端的情況,這很有用。
注意: 在這種情況下,您不能在同一臺計算機上同時運行WebScarab和客戶端應用程序,因為在嘗試連接到上游目標時,WebScarab將從主機文件中獲得相同的IP地址,并最終循環回到本身是遞歸的。
注意:您還應該將WebScarab證書添加到已識別證書的客戶端應用程序列表中,以防止發生證書錯誤。如果不必這樣做,則客戶端應用程序容易受到中間攻擊的攻擊,因為它無法正確驗證證書。
網絡模擬器允許用戶限制客戶端可用的帶寬,并引入人為延遲。
還有一個啟用插件的選項。如果未選擇此選項,則在看到每個請求和響應時將不會調用各種代理插件。如果插件似乎不起作用,或者您的攔截沒有發生,請檢查以確保選中此復選框。
在Windows平臺上,如果WebScarab加載了W32WinInet DLL,則標記為“主要”的偵聽器將在啟動時自動“劫持” Internet Explorer,并配置Internet Explorer(以及所有其他基于WinInet的應用程序)以將WebScarab用作代理。當偵聽器停止時(例如,如果它已手動停止,或者WebScarab退出),將恢復原始設置。顯然,配置多個主偵聽器沒有任何意義,因為它們將相互沖突,并且可能會導致在關閉WebScarab時還原錯誤的代理設置。
注意: 此時,從技術上講,沒有什么可以阻止您配置多個“主”偵聽器的。只是不要這樣做。同樣,用基本URL配置偵聽器并將其設置為主要偵聽器也沒有意義,因為它將使用不同的協議(期望非完全限定的URL,而不是包含方案和主機部分的URL)。只是不要這樣做。
主動對話
偵聽器配置下面是一張表,該表顯示了各種偵聽器已處理的最新請求和當前請求。在解決連接錯誤時,這很有用,因為代理不會將失敗的請求保存到常規摘要中。
一個有用的選項可能是具有特定的選項,以增加Proxy插件中的調試輸出,以進行詳細的調試
代理插件
可以編寫代理插件,以對通過代理傳輸的請求和響應進行各種修改。當前的插件有:
手動攔截
手動攔截代理插件允許用戶攔截來自瀏覽器的請求和來自服務器的響應,檢查它們,并有選擇地在傳輸之前對其進行修改。當人們想要將表單提交給Web服務器,但JavaScript驗證拒絕您要提交的值時,此功能特別有用。驗證完成后,可以更改請求。
通過從“方法”列表中進行選擇,用戶可以選擇使用特定方法攔截請求。如果要選擇多個方法,請在單擊以選擇其他項目時使用Ctrl。
用戶還可以指定URL必須匹配才能被攔截的Java正則表達式。您還可以選擇指定一個正則表達式,該正則表達式與不應攔截的URL匹配。一次還可以指定是否以區分大小寫的方式評估正則表達式,例如,圖像文件擴展名是.GIF。
WebScarab還可以攔截來自服務器的響應,并在將其中繼到瀏覽器之前對其進行修改。您可以指定響應Content-Type標頭應該匹配的正則表達式,以便被攔截。
Bean Shell
Bean Shell代理插件可對請求和響應進行腳本化修改。當人們想要對多個對話進行相同的修改時,或者如果修改特別復雜時,這特別有用。在將請求發送到服務器之前,該腳本具有對請求的完全訪問權限;在將其發送到瀏覽器之前,該腳本具有對響應的訪問權限。當前,請求和響應對象僅在JavaDoc中完整記錄了相關類(org.owasp.webscarab.model.Request和org.owasp.webscarab.model.Response)。
注意:僅當按下“提交”按鈕時,對編輯器窗口中的腳本所做的更改才會生效。
其他插件
有許多可用于代理對話的其他插件。
- “顯示隱藏字段”插件可將任何為“隱藏”類型的表單字段更改為“文本”類型。這將導致瀏覽器顯示這些字段,并使用戶易于修改字段,以及觀察何時使用此類隱藏字段。
- “防止緩存”插件從請求中刪除任何“ if-modified-since”或類似的標頭,以確保WebScarab始終具有響應正文的副本,而不是允許瀏覽器使用本地緩存的副本。
- WebScarab的“注入cookie”插件允許WebScarab覆蓋瀏覽器中的任何cookie,或提供瀏覽器不知道的cookie。這些cookie是從“共享cookie”列表中檢索到的,并根據域和路徑屬性對其進行過濾以確保適用性。
- “收集cookie”插件從通過代理傳遞的響應中提取所有“ Set-Cookie”標題,并將其添加到“共享cookie”列表中。如果需要,以后可以將其用于其他插件來維護狀態。
- NTLM身份驗證不能通過代理使用。但是,由于瀏覽器應使用可用的最強身份驗證方法,因此Internet Explorer通常會嘗試使用NTLM身份驗證來支持基本身份驗證,并且會失敗。但是,IE不會再退一步使用基本身份驗證。WebScarab通過刪除或修改任何提供NTLM協議的Authenticate標頭來解決此問題。如果上游代理服務器或目標Web服務器需要NTLM身份驗證,則可能要嘗試使用確實支持NTLM身份驗證的APS(身份驗證代理服務器)。可能可以在鏈接配置中運行WebScarab和APS(APS離目標更近)。但是,這尚未經過測試。
注意:有趣的是可以通過代理執行SPNEGO身份驗證。尤其是,由于WebScarab支持持久連接,因此將監視與使用SPNEGO的服務器的代理會話,盡管將記錄瀏覽器和服務器之間協議協商的每個部分,并最終導致大量401響應在日志中。這甚至可以用于攔截的SSL連接!
WebScarab中文漢化使用教程
推薦文章: