Web應(yīng)用滲透測試完全指南
譯文?
??
作者丨Ariaa Reeds
翻譯丨仇凱
策劃丨孫淑娟
【51CTO.com快譯】如果你是 Web 安全專家、Web 滲透測試工程師或 Web 應(yīng)用開發(fā)者,那么本文就是為你量身定制的。本文將從三個方面提供指導(dǎo):首先,幫助你學(xué)習(xí) Web 應(yīng)用滲透測試技術(shù),并了解相關(guān)工具;其次,告訴你如何在 Web 應(yīng)用中尋找和測試漏洞;最后,指導(dǎo)你如何通過 Web 應(yīng)用滲透測試技術(shù)提升 Web 應(yīng)用的安全性。
Web 應(yīng)用滲透測試
Web 應(yīng)用滲透測試是一種識別和預(yù)防 Web 應(yīng)用安全問題的方法。Web 滲透測試工程師依據(jù)自身對漏洞和滲透測試技術(shù)的理解,遵循科學(xué)的滲透測試流程,使用滲透測試工具識別 Web 應(yīng)用中的安全風(fēng)險,這些安全風(fēng)險很可能被黑客或其他未經(jīng)授權(quán)人員惡意利用。
Web 應(yīng)用是專門為 Web 服務(wù)器設(shè)計和開發(fā)的程序,例如 Internet 信息服務(wù)(IIS)、Apache Tomcat 等。Web 應(yīng)用的使用場景非常廣泛,既可以是基于文本的簡單計算器,也可以是類似亞馬遜(Amazon)一樣復(fù)雜的電子商務(wù)系統(tǒng)。這些電子商務(wù)系統(tǒng)同時運行著身份驗證系統(tǒng)、數(shù)據(jù)庫、網(wǎng)站等許多不同的服務(wù)。
要完成有效的 Web 應(yīng)用滲透測試任務(wù),需要具備豐富的 Web 應(yīng)用技術(shù)知識,例如 Web 服務(wù)器、Web 應(yīng)用框架和 Web 編程語言。
Web 應(yīng)用滲透測試的優(yōu)勢
Web 應(yīng)用滲透測試是檢測 Web 應(yīng)用漏洞和安全問題最有效的方法。通過 Web 應(yīng)用滲透測試,能夠判斷 Web 應(yīng)用是否存在脆弱性,這通常代表 Web 應(yīng)用存在可以被黑客或未授權(quán)人員惡意利用的漏洞。在安全的環(huán)境中對 Web 應(yīng)用進行滲透測試,可以避免因滲透測試導(dǎo)致的生產(chǎn)系統(tǒng)宕機。這有助于在用戶數(shù)據(jù)遭到破壞之前發(fā)現(xiàn) Web 應(yīng)用的安全問題,使得我們有足夠的時間修復(fù)漏洞。Web 應(yīng)用滲透測試可以幫助 Web 安全專家了解 Web 應(yīng)用的工作原理、Web 應(yīng)用的技術(shù)實現(xiàn)以及攻擊者利用的 Web 應(yīng)用漏洞類型。這些可以幫助你更好的理解 Web 應(yīng)用的攻擊面,以便制定并實施有效的安全措施。
如何開展 Web 應(yīng)用滲透測試工作
Web 安全專家使用各種工具和技術(shù)在其負責的 Web 應(yīng)用上執(zhí)行滲透測試任務(wù)。他們同樣會制作自定義的測試用例,用來模擬真實世界中對 Web 應(yīng)用靶標的攻擊。
Web 應(yīng)用滲透測試流程
了解靶標應(yīng)用的工作原理(例如:靶標應(yīng)用使用了哪些技術(shù)等)。使用自動或手動工具掃描靶標應(yīng)用,尋找客戶端代碼(例如 Javascript、Flash 對象、Cookie 等)的漏洞,當發(fā)現(xiàn)漏洞后,嘗試攻擊此漏洞,以便找到造成該漏洞的根本原因,然后盡可能的嘗試修復(fù)它。
Web 滲透測試人員通常會做的事情
- 遍歷 Web 應(yīng)用目錄和 Web 服務(wù)器;
- 判斷靶標應(yīng)用及其使用的技術(shù)實現(xiàn)(服務(wù)器、技術(shù)框架)和編程語言;
- 使用 Burp Suite 或 Acunetix 等工具進行手動滲透測試,以發(fā)現(xiàn)客戶端代碼(例如 Javascript、Flash 對象等)的漏洞;
- 使用 Netsparker 或 HP Web Inspect 等自動化工具掃描并識別 Web 服務(wù)器和相關(guān)技術(shù)框架中的已知漏洞。滲透測試人員在手動測試階段發(fā)現(xiàn)的 Web 應(yīng)用漏洞,也可以使用自動化工具進行攻擊利用;
如有必要,對 Web 應(yīng)用進行源代碼分析,以便在 Web 應(yīng)用部署至 Web 服務(wù)器之前,通過添加傳入數(shù)據(jù)過濾器來修復(fù)安全問題。
Web 應(yīng)用滲透測試工具
有許多開源和商業(yè)的 Web 應(yīng)用安全評估工具可以使用,例如:
- Acunetix WVS/WVS11;
- Netsparker Web Scanner;
- IBM Rational Appscan Standard Edition;
- HP Web Inspect Professional;
- Paros Proxy etc.
相較于自動化技術(shù),手動執(zhí)行 Web 應(yīng)用滲透測試任務(wù)依然是很好的選擇,因為它可以在測試時提供更大的靈活性。手動執(zhí)行 Web 應(yīng)用安全評估包含多個步驟,根據(jù)你的測試目的(例如利用漏洞),這些步驟能夠涵蓋從信息收集到漏洞利用的全流程范圍。
如何執(zhí)行 Web 應(yīng)用滲透測試任務(wù)
在明確 Web 應(yīng)用的安全評估目標后,首先要做的事情就是信息收集。你需要盡可能多的收集靶標應(yīng)用信息,這將有助于規(guī)劃下一個階段的滲透測試任務(wù)。例如識別所有提供公開服務(wù)的系統(tǒng),靶標應(yīng)用所使用的軟件平臺等。將 Web 應(yīng)用名稱或技術(shù)實現(xiàn)作為自定義關(guān)鍵字,在 Google、LinkedIn 或其他有效的在線社交網(wǎng)站進行信息收集,在此之后,你還應(yīng)當搜尋并下載包含敏感信息(例如用戶名和密碼)的 Web 應(yīng)用文件。
現(xiàn)在,通過 Web 應(yīng)用的源代碼或其他有效的在線資源,分析靶標應(yīng)用所使用的技術(shù)實現(xiàn)。這是非常重要的步驟,因為這些信息有助于我們規(guī)劃下一個階段的滲透測試任務(wù)。
如果你使用自動化工具完成信息收集,那么分析靶標應(yīng)用的技術(shù)實現(xiàn)將尤為重要,因為此類工具只能檢測基于特定 Web 應(yīng)用框架和編程語言的漏洞,無法有效識別所有漏洞信息。
我們始終建議通過由外向內(nèi)(即,以提供公開服務(wù)的系統(tǒng)作為測試起點)的方式執(zhí)行滲透測試任務(wù),這將有助于我們從攻擊者的角度了解其使用的攻擊方式、攻擊技術(shù)和攻擊路徑,更全面的分析 Web 應(yīng)用暴露的攻擊面。
如何提升 Web 應(yīng)用滲透測試的效果
在開始 Web 應(yīng)用滲透測試任務(wù)之前,需要完成大量的計劃和準備工作。你需要清楚的意識到 Web 應(yīng)用是非常復(fù)雜的系統(tǒng),它是由許多技術(shù)實現(xiàn)組合而成,例如 Web 服務(wù)器 /Web 應(yīng)用服務(wù)器、Web 應(yīng)用框架或編程語言等,因此確定靶標應(yīng)用使用了哪些技術(shù)實現(xiàn)是非常重要的。
某些工具只支持對特定類型的 Web 應(yīng)用技術(shù)進行檢測,例如:
Paros 支持檢測由 PHP 技術(shù)開發(fā)的應(yīng)用,不支持基于 ASP 技術(shù)開發(fā)的應(yīng)用;
Acunetix WVS 可以自動識別運行在 Windows 服務(wù)器上的應(yīng)用服務(wù)類別(即 Apache 或者 IIS),而在 Linux 環(huán)境中,需要在初始化階段對應(yīng)用服務(wù)類別進行手動配置,這是因為 Acunetix WVS 可以在 Windows 環(huán)境中進行自動檢測,但是在 Linux 環(huán)境中卻無法進行自動檢測。
譯者介紹
仇凱,51CTO 社區(qū)編輯,目前就職于北京宅急送快運股份有限公司,職位為信息安全工程師。主要負責公司信息安全規(guī)劃和建設(shè)(等保,ISO27001),日常主要工作內(nèi)容為安全方案制定和落地、內(nèi)部安全審計和風(fēng)險評估以及管理。
原文標題:The Complete Guide to Web Application Penetration Testing,作者:Ariaa Reeds
原文鏈接:
??https://readwrite.com/2022/01/02/the-complete-guide-to-web-application-penetration-testing/??
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】
?
??
























