一次偶然的機會,我有幸邀請了一家web來對自己的web系統(tǒng)進行安全。四周后,我與幾位安全專家進行了多次溝通,完成了威脅建模、滲透和白盒,發(fā)現(xiàn)了28個漏洞。經驗是寶貴的,所以有必要總結一下。
現(xiàn)在,隨著企業(yè)信息化建設的發(fā)展,越來越多的重要數據將以電子媒體的形式存儲,不僅方便了企業(yè)辦公,而且造成了巨大的安全風險。近年來,隨著APT隨著攻擊的蔓延,越來越多的企業(yè)遭受了不可挽回的重大損失。
面對目的明確、裝備精良、經驗豐富的雇傭軍攻擊者,傳統(tǒng)的安全設備似乎無能為力。企業(yè)需要做的是定期進行專業(yè)的滲透,以降低風險,加強安全。
那么,什么是滲透呢?
滲透是滲透工程師充分模擬黑客可能使用的攻擊技術和漏洞發(fā)現(xiàn)技術,深入探測目標網絡、主機和應用的安全性,發(fā)現(xiàn)系統(tǒng)中較脆弱的環(huán)節(jié)。
假如說安全檢測是橫向地毯式自動化掃描
可見滲透試驗的目的是發(fā)現(xiàn)目標系統(tǒng)潛在的業(yè)務漏洞風險。
安全問題反映在輸入輸出問題上,可以分析數據流。首先了解滲透的過程,用工具找到漏洞,理解和復制它。
如何進行Web滲透?
完整web滲透試驗框架需要的web成千上萬的應用程序需要建立一個完整的安全框架戶的安全服務質量。
項目建立、時間安排、人力分配、目標制定、廠家接口人確定;
系統(tǒng)分析&威脅分析:針對具體情況web應用程序、分析系統(tǒng)架構、使用組件、外部界面等STRIDE對威脅模型進行相應的安全威脅分析,輸出安全威脅分析表,重點關注top3威脅;
制定試驗用例:根據威脅分析結果制定相應的試驗用例,試驗用例按模板輸出,具有可執(zhí)行性;
執(zhí)行&漏洞挖掘:試驗用例執(zhí)行&發(fā)散試驗,挖掘相應的安全問題or漏洞;
問題修復&回歸:指導客戶應用開發(fā)人員修復安全問題or確保安全問題or修復漏洞,未引入新的安全問題;
項目總結評審:項目流程總結、輸出文檔評審、相關文檔歸檔。
2、Web滲透試驗過程的應用
信息收集主要分為三個階段:→漏洞發(fā)現(xiàn)→利用漏洞,仔細分析各個階段的流程:
一、信息收集
在信息收集階段,我們需要盡可能多地收集目標web腳本語言類型、服務器類型、目錄結構、開源軟件、數據庫類型、所有鏈接頁面、等各種信息
腳本語言類型:常見的腳本語言類型包括:php、asp、aspx、jsp等
方法:
1 爬網站所有鏈接,查看后綴
2 直接訪問頁面后面沒有不同的后綴
3 查看robots.txt,查看后綴
服務器類型:常見web服務器包括:apache、tomcat、IIS、ngnix等
方法:
1 查看header,判斷服務器類型
2 根據錯誤信息判斷
3 根據默認頁面判斷
目錄的結構:了解更多的目錄,可能發(fā)現(xiàn)更多的弱點,如:目錄瀏覽、代碼泄漏等。
方法
1 使用字典枚舉目錄
2 用爬蟲爬整個網站或者用google等待搜索引擎獲取
3 查看robots.txt是否泄漏
使用的開源軟件:如果我們知道目標使用的開源軟件,我們可以找到相關軟件的漏洞,直接網站。
方法
指紋識別(網絡上有很多開源指紋識別工具)
數據庫類型:對不同的數據庫有不同的方法。
方法
1 使應用程序報錯,查看報錯信息
2 掃描服務器數據庫端口(沒有NAT防火墻不過濾時有效)
所有鏈接頁面:這類似于之前的訪問目錄結構,但這不僅是訪問網站的所有功能頁面,有時也是管理員備份的源代碼。
方法
1 使用字典枚舉頁面
2 用爬蟲爬整個網站或者用google等待搜索引擎獲取
3 查看robots.txt是否泄漏
使用:許多網站使用開源框架來快速開發(fā)網站,因此收集網站的框架信息也非常重要。
方法
指紋識別(網絡上有很多開源指紋識別工具)
二、發(fā)現(xiàn)漏洞
在這個階段,我們應該對癥下藥,不要盲目掃描。首先,我們應該確定目標應用程序是否使用公共開源軟件、開源框架等,然后進行深入的漏洞掃描。
開源軟件的漏洞發(fā)現(xiàn)
開源軟件:常見的開源軟件包括wordpress、phpbb、dedecms等
開源框架:常見的開源框架有Struts2、 Spring MVC、ThinkPHP等
中間件服務器:常見的中間件服務器jboss、tomcat、Weblogic等
數據庫服務:常見的數據庫服務mssql、mysql、oracle、redis、sybase、MongoDB、DB2等
開源軟件的方法
1 通過指紋識別軟件判斷開源軟件的版本信息,找到相應版本的漏洞進行
2 可以進行簡單的暴力破解、默認密碼嘗試等操作,如默認后臺登錄頁、數據庫服務端口認證等。
3 用開源漏洞發(fā)現(xiàn)工具掃描漏洞,如:WPScan
關于自主開發(fā)的應用
手動:在這個階段,我們需要手動所有與用戶互動的功能,如留言、登錄、下單、退出、退貨、付款等。
軟件掃描:使用免費軟件掃描,如:appscan、wvs、netsparker,burp等
可能的漏洞
Owasp關鍵點
上傳代碼安全文件
包括代碼安全文件
代碼安全之SSRF
重置邏輯漏洞的密碼
支付漏洞的邏輯漏洞
越權訪問邏輯漏洞
平臺安全中間部件安全
三、利用漏洞
利用不同的弱點有不同的漏洞,需要更多的知識點。一般來說,這個階段有兩種方法,一種是手動,另一種是工具
手工
手動是一種漏洞檢測技術,通過客戶端或服務器訪問目標服務,手動向目標程序發(fā)送特殊數據,包括有效和無效的輸入,觀察目標狀態(tài),對各種輸入做出反應,并根據結果發(fā)現(xiàn)問題。手動不需要額外的輔助工具,可以由人員獨立完成,相對容易實現(xiàn)。但這種方法高度依賴于人員,需要人員了解目標。手動可用于Web需要用戶交互的應用程序、瀏覽器等程序。
這種方法可用于特殊過濾等操作,或在網絡上沒有成型的工具。
工具
網絡上有很多好用的免費使用工具,比如sql注入的sql p、針對軟件漏洞的 tesploit等。
產品推薦