發(fā)布時間:2020-07-16
滲透測試,是滲透測試工程師完全模擬黑客可能使用的攻擊技術和漏洞發(fā)現技術,對目標網絡、主機、應用的安全作深入的探測,發(fā)現系統(tǒng)最脆弱的環(huán)節(jié)。
如果說安全檢測是"橫向地毯式自動化掃描",那么滲透測試就是"縱向深度人工化入侵"??梢姖B透測試的目的是發(fā)現目標系統(tǒng)潛在的業(yè)務漏洞風險。
安全問題都體現在輸入輸出的問題上,能夠分析數據流就有跡可循了。先知道滲透測試的流程,用軟件測試工具找到漏洞,了解并且復現它。
如何進行Web滲透測試?
1、 完整web滲透測試框架
當需要測試的web應用數以千計,就有必要建立一套完整的安全測試框架,流程的最高目標是要保證交付給客戶的安全測試服務質量。
立項:項目建立,時間安排,人力分配,目標制定,廠商接口人確定;
系統(tǒng)分析&威脅分析:針對具體的web應用,分析系統(tǒng)架構、使用的組件、對外提供的接口等,以STRIDE為威脅模型進行對應的安全威脅分析,輸出安全威脅分析表,重點關注top3威脅;
制定測試用例:根據威脅分析的結果制定對應的測試用例,測試用例按照模板輸出,具備可執(zhí)行性;
測試執(zhí)行&漏洞挖掘:測試用例執(zhí)行&發(fā)散測試,挖掘對應的安全問題or漏洞;
問題修復&回歸測試:指導客戶應用開發(fā)方修復安全問題or漏洞,并進行回歸測試,確保安全問題or漏洞得到修復,并且沒有引入新的安全問題。
項目總結評審:項目過程總結,輸出文檔評審,相關文檔歸檔。
2、Web應用的滲透測試流程
主要分為3個階段,分別是:信息收集→漏洞發(fā)現→漏洞利用,下面仔細分析一下各個階段流程:
1、 信息收集
在信息收集階段,我們需要盡量多的收集關于目標web應用的各種信息,比如:腳本語言的類型、服務器的類型、目錄的結構、使用的開源軟件、數據庫類型、所有鏈接頁面,用到的框架等;
腳本語言的類型:常見的腳本語言的類型包括:php、asp、aspx、jsp等;
測試方法:
1 爬取網站所有鏈接,查看后綴;
2 直接訪問一個不存在頁面后面加不同的后綴測試;
3 查看robots.txt,查看后綴;
服務器的類型:常見的web服務器包括:apache、tomcat、IIS、ngnix等。
測試方法:
1 查看header,判斷服務器類型;
2 根據報錯信息判斷;
3 根據默認頁面判斷;
目錄的結構:了解更多的目錄,可能發(fā)現更多的弱點,如:目錄瀏覽、代碼泄漏等。
測試方法
1 使用字典枚舉目錄;
2 使用爬蟲爬取整個網站,或者使用google等搜索引擎獲取;
3 查看robots.txt是否泄漏;
我們可以查找相關的軟件的漏洞直接對網站進行測試。
數據庫類型:對于不同的數據庫有不同的測試方法。
1 使應用程序報錯,查看報錯信息
2 掃描服務器的數據庫端口(沒做NAT且防火墻不過濾時有效);
所有鏈接頁面:這個跟前面的獲取目錄結構類似,但是這個不只是獲取網站的所有功能頁面,有時候還可以獲取到管理員備份的源碼。
1 使用字典枚舉頁面;
2 使用爬蟲爬取整個網站,或者使用google等搜索引擎獲??;
3 查看robots.txt是否泄漏;
用到的框架:很多網站都利用開源的框架來快速開發(fā)網站,所以收集網站的框架信息也是非常關鍵的。
二、漏洞發(fā)現
在這個階段我們在做測試的時候要對癥下藥,不能盲目的去掃描,首先要確定目標應用是否使用的是公開的開源軟件,開源框架等、然后在做深一度的漏洞掃描。
關于開源軟件的漏洞發(fā)現
開源的軟件:常見的開源軟件有wordpress、phpbb、dedecms等;
開源的框架:常見的開源框架有Struts2、 Spring MVC、ThinkPHP等;
中間件服務器:常見的中間件服務器有jboss、tomcat、Weblogic等;
數據庫服務:常見的數據庫服務mssql、mysql、oracle、redis、sybase、MongoDB、DB2等;
對于開源軟件的測試方法
1 通過指紋識別軟件判斷開源軟件的版本信息,針對不同的版本信息去開放的漏洞數據庫查找相應版本的漏洞進行測試
2 對于默認的后臺登錄頁、數據庫服務端口認證等入口可以進行簡單的暴力破解、默認口令嘗試等操作
3 使用開源的漏洞發(fā)現工具對其進行漏洞掃描,如:WPScan
關于自主開發(fā)的應用
手動測試:這個階段,我們需要手工測試所有與用戶交互的功能,比如:留言、登入、下單、退出、退貨、付款等操作。
軟件掃描:使用免費的軟件掃描,如:appscan、wvs、netsparker,burp等。
可能存在的漏洞:
Owasp關鍵點;
代碼安全之上傳文件;
代碼安全之文件包含;
代碼安全之SSRF;
邏輯漏洞之密碼重置;
邏輯漏洞之支付漏洞;
邏輯漏洞之越權訪問;
平臺安全之中間件安全;
三、漏洞利用
針對不同的弱點有不同的漏洞利用方式,需要的知識點也比較多。一般這個階段包括兩種方式,一種是手工測試,一種是工具測試。
手工測試
手工測試是通過客戶端或服務器訪問目標服務,手工向目標程序發(fā)送特殊的數據,包括有效的和無效的輸入,觀察目標的狀態(tài)、對各種輸入的反應,根據結果來發(fā)現問題的漏洞檢測技術。手工測試不需要額外的輔助工具,可由測試者獨立完成,實現起來比較簡單。但這種方法高度依賴于測試者,需要測試者對目標比較了解。手工測試可用于Web應用程序、瀏覽器及其他需要用戶交互的程序。
這種方式對于有特殊過濾等操作,或者網絡上沒有成型的利用工具的時候可以使用。
工具測試
AutoRunner是國內領先的支持C/S、B/S各種技術框架的、基于組件識別的自動化測試工具,實現7*24小時的自動化回歸測試,讓測試更智能。
推薦閱讀:
如何編寫用于UI測試的測試方案?如何編寫好的UI測試測試用例?
您的信息已成功提交!
我們的客服人員稍后會與您聯系