在前一篇文章中,我們討論了工具在滲透測試中的重要性,自動化如何幫助减少時間和工作量,以及如何使用soapUI Pro自動化web服務滲透測試。
在這篇文章中,我們將重點討論可以使用哪些其他選項來自動化web服務滲透測試。
可行性
要執行web服務滲透測試,soapUI-Pro是最好的選項之一,但在某些情况下,您可能會蒐索其他選項:例如,您不參加常規的web服務滲透測試。或者你的預算對於包含web應用程序滲透測試和web服務滲透測試的滲透測試非常低,或者你在執行web服務滲透測試方面沒有太多經驗。
在這種情況下,你需要一些打包的東西。用於web應用程序滲透測試和web服務滲透測試的工具。一個工具,您只需按一下next、next、next,它就會為您提供web服務滲透測試的結果。一個可以拋出WSDL並獲得結果的工具。您可以選擇這些非常流行的web應用程序滲透測試工具之一,IBM AppScan或HP WebInspect。
應用掃描
IBM Security AppScan(http://www-03.IBM.com/software/products/us/en/AppScan/)是web應用滲透測試領域中最流行、應用最廣泛的自動化工具之一。它允許滲透測試人員自動化他們的web應用程序滲透測試,以找出應用程序中存在的漏洞。大多數滲透測試人員僅將其用於web應用程序滲透測試,但也可以用於測試web服務以識別存在的漏洞。現在,我們將重點討論IBM Security AppScan如何進行web服務滲透測試。
使用AppScan測試Web服務
使用AppScan測試Web服務與測試普通Web應用程序略有不同,因為AppScan使用單獨的用戶端來瀏覽Web服務。這個獨立的客戶機稱為通用服務客戶機(GSC)。
通用服務用戶端(GSC)
它使用web服務的WSDL檔案以樹格式顯示可用的各個方法,並創建一個用戶友好的GUI來向服務發送請求。您可以使用此介面逐個選擇方法,並輸入所需的參數值。同時,您還可以將請求發送到服務器,以便以響應的形式查看結果。這些過程由AppScan記錄,稍後用於根據GSC對服務發出的請求數創建測試用例。
配寘
您需要使用執行web服務滲透測試所需的選項正確配寘AppScan。正如我們從“Web服務滲透測試第1部分和第2部分”中學到的,我們需要一個WSDL檔案或URL來正確地執行Web服務滲透測試。我們將測試http://www.testfire.net/bank/ws.asmx的web服務?WSDL。最好有樣本測試數據(SOAP請求和響應)來正確測試web服務,但是,由於我們正在執行黑盒測試,我們將提供執行測試所需的數據格式。
打開AppScan啟動web服務滲透測試。AppScan將從圖1所示的視窗開始。
圖1:新窗口
此視窗將顯示最近的掃描和“創建新掃描”選項。按一下該選項。“New Scan”視窗將打開,如圖2所示。
圖2:新的掃描視窗
這個“New Scan”視窗將顯示使用的“Recent Templates”以及選擇其中一個“Predefined Templates”的選項。從“Predefined Templates”中選擇“Regular Scan”。按一下“Regular Scan”範本,將打開“Scan配寘嚮導”窗口,如圖3所示。
圖3:掃描配寘視窗
在“Scanconfigurationwizard”中,選擇“Webservicesscan”,然後按一下“Next”打開一個視窗,您需要在其中提供WSDL檔案或WSDLURL,如圖4所示。
圖4:URL和服務器視窗
如果需要為代理或HTTP身份驗證配寘任何其他設定,可以在這裡配寘它們,但是要測試web服務,我將繼續使用默認設置,如圖5所示。
圖5:URL和服務器視窗
按一下“Next”打開“Test Policy”視窗,如圖6所示。
圖6:測試策略視窗
在這裡,您將找到一個預定義的策略,用於測試與SOAP相關的測試,即“Web服務”。選擇“Web服務”。如果要檢查與此策略相關聯的測試用例,只需按一下此視窗左下角“常規任務”下的“完全掃描配寘”連結。按一下“Full Scan Configuration”連結將打開一個新的“Full Scan Configuration”視窗,如圖7所示。
圖7:全掃描配寘視窗
選擇“測試策略”選項卡(位於視窗左側的“測試”下)以查看此Web服務策略中包含的測試用例。當您開始探索測試用例時,在“無分組”選項下,您將看到三種類型的按鈕:
- 殘疾人
殘疾人
- 啟用
啟用
- 部分啟用
部分啟用
下麵提到的是此策略中包含的一些測試用例類。
- XML外部實體
XML外部實體
- 資訊洩露
資訊洩露
- 身份驗證不足
身份驗證不足
- SQL注入
SQL注入
- 跨網站腳本
跨網站腳本
- 目錄索引
目錄索引
- 功能性濫用
功能性濫用
- 會話固定
會話固定
- 作業系統指揮
作業系統指揮
- 格式化字串
格式化字串
- 蠻力
蠻力
- 不安全索引
不安全索引
- LDAP注入
LDAP注入
- 內容欺騙
內容欺騙
- 遠程檔案包含
遠程檔案包含
- 空位元組注入
空位元組注入
- SSI注入
SSI注入
- 會話到期時間不足
會話到期時間不足
- 傳輸層保護不足
傳輸層保護不足
- HTTP響應折開攻擊
HTTP響應折開攻擊
- 路徑遍歷
路徑遍歷
- XPath注入
XPath注入
在瀏覽完包含的測試用例之後,按一下“OK”關閉完整掃描配寘視窗,然後按一下“Next”完成配寘嚮導,它將打開一個新窗口,如圖9所示。
圖9:完整的掃描配寘視窗
此視窗顯示您已成功完成掃描配寘嚮導,還提供了有關如何通過使用GSC探索web服務方法來啟動測試的資訊。按一下“Finish”啟動GSC,GSC將導入所提供的WSDL檔案中可用的所有方法,如圖10所示。
圖10:GSC視窗
這個GSC顯示了“Request Library”下導入的所有方法,現在需要編輯每個方法請求,並在edit Request選項中使用所需的資料類型為所需參數提供一個值,如圖11所示。
圖11:GSC
我選擇了“IsValidUSer”方法並按一下了“UserId”參數。它需要一個字串資料類型值。現在提供一個字串資料類型值並調用請求。我提供了值1並按一下了“Invoke”按鈕;得到的響應如圖12所示。
圖12:GSC請求編輯器
類似地,選擇所有方法,在參數中輸入所需的資料類型值,然後逐個調用請求。完成所有請求調用後,關閉GSC視窗。現在,AppScan將記錄所有請求並生成測試用例以啟動web服務滲透測試,如圖13所示。
圖13:AppScan測試視窗
如您所見,AppScan從GSC請求歷史記錄中獲取了所有請求,並設定為啟動測試。只需按一下左上角的“僅測試”選項即可開始測試。完成所有測試用例後,您將在AppScan中獲得結果,如圖14所示。
圖14:AppScan結果
下麵是使用AppScan掃描web服務的結果。現在,您可以使用AppScan測試任何web服務以發現存在的漏洞。你需要手動驗證以避免誤報。
WebInspect網站
HP WebInspect(http://www8.HP.com/in/en/software-solutions/software.html?compURI=1341991)是另一個非常流行的web應用滲透測試工具。它使用真實的駭客技術和攻擊來徹底分析您的web應用程序和web服務,以識別安全性漏洞。它包含web服務滲透測試中的一些特性,使其成為流行的黑盒web服務滲透測試工具之一。現在我們將重點討論如何使用HP WebInspect測試web服務。
打開WebInspect,您會發現它的起始頁包含“最近打開的掃描”、“今天計畫的掃描”、“WebInspect消息”、“WebInspectxx.x中的新功能!”!“(其中“x x.x”是您正在使用的WebInspect版本)以及啟動新掃描的選項,如圖15所示。
圖15:WebInspect起始頁
按一下“啟動Web服務掃描”,這將打開一個“Web服務掃描嚮導”,如圖16所示。
圖16:Web服務掃描視窗
選擇“配寘Web服務掃描”,然後在“WSDL位置”的空白處插入您的WSDL URL。在我的例子中,我使用的是相同的http://www.testfire.net/bank/ws.asmx?WSDL。在“掃描名稱”中輸入一個名稱。我正在使用testfire,如圖17所示。
圖17:Web服務掃描視窗
按一下“Next”以獲得“AuthenticationandConnectivity”視窗,您必須在其中提供所有必需的詳細資訊,如圖18所示。
圖18:身份驗證和連接視窗
在我們的例子中,我們不需要任何“網絡代理”或“網絡身份驗證”,取消選中“網絡代理”選項,如圖19所示。
圖19:身份驗證和連接視窗
按一下“下一步”打開下一個視窗,其中包含“詳細掃描配寘”,但在此之前,將彈出一個提示:“是否立即啟動Web服務測試設計器?”?,如圖20所示。
圖20:Web服務測試設計提示
按一下“是”打開一個新的“Web服務測試設計器”視窗。此視窗包含左上角提供的WSDL檔案中的所有方法。如果您想添加其他方法或删除任何方法,只需選中或取消選中該方法,如圖21所示。
圖21:Web服務測試設計器視窗
我前面提到過,WebInspect是一個流行的黑盒web服務測試工具,原因如下:它不僅從WSDL導入所有方法,而且還在參數中填充所需資料類型的值。囙此,作為pen測試人員,您只需要向WebInspect提供一個有效的WSDL,它將為您完成其餘的工作,這與其他工具不同,您需要在每個方法中手動插入數據。有一個限制:有時WebInspect無法在所需參數中填充正確的資料類型,並且無法檢測該方法。在我們的例子中,WebInspect無法檢測IsValidUser方法,囙此在該方法的右側會顯示一個紅十字。
現在關閉“Web服務測試設計器”視窗。它將提示您保存設計器檔案。按一下“是”,並通過在電腦中提供測試設計器檔案的名稱來保存它。我把它保存為test4。您將在詳細掃描配寘視窗的names欄位中獲得名稱自動設定,如圖22所示。
圖22:詳細掃描配寘視窗
您可以在同一視窗中看到其他設定。如果需要任何自定義設定,可以啟用它們,但在本例中,我將繼續使用默認設置。按一下“Next”完成嚮導,如圖23所示。
圖23:Web服務掃描嚮導最終視窗
你會在那裡收到賀電的。現在點擊“掃描”開始掃描。WebInspect將掃描web服務並向您提供漏洞報告,如圖24所示。
圖24:WebInspect結果
這裡顯示了web服務掃描的結果。現在,您可以使用WebInspect測試任何web服務,特別是黑盒,以發現現有的漏洞,並且需要手動驗證以避免誤報。
結論
任何自動化工具都會幫助您從滲透測試中獲得良好的結果,並會减少您的時間和精力,但最好將它們僅用於覆蓋範圍,並將更多精力放在手動測試上,因為自動化工具也可以提供誤報和漏報。
參攷
http://www-03.ibm.com/software/products/us/en/appscan/
http://www-01.ibm.com/support/docview.wss?uid=swg21404788
http://pic.dhe.ibm.com/infocenter/apsshelp/v8r6m0/index.jsp?主題=%2Fcom.ibm.help.common.infocenter.aps%2Fc\u webapplicationsvwebservices002.html
http://www8.hp.com/in/en/software-solutions/software.html?電腦=1341991
http://h30499.www3.hp.com/t5/WebInspect/Using-WebInspect-9-10-to-scan-a-web-service/td-p/4817387
http://blog.qatestlab.com/wp-content/uploads/2013/09/software-testing-company-000188.png