當前位置:首頁 » 網站資訊 » 網站滲透測試內容有什麼
擴展閱讀
平板電腦排名和價格 2025-02-05 00:35:40

網站滲透測試內容有什麼

發布時間: 2023-08-12 14:15:51

A. 網路安全包括哪幾個方面滲透測試學什麼

網路安全行業里說的滲透測試(penetration test,pentest)是實施安全評估(即審計)的具體手段。
滲透測試可能是單獨進行的一項工作,也可能是產品系統在研發生命周期里 IT 安全風險管理的一個組成部分。產品的安全性並不完全取決於 IT 方面的技術因素,還會受到與該產品有關的最佳安全實踐的影響。具體而言,增強產品安全性的工作涉及安全需求分析、風險分析、威脅建模、代碼審查和運營安全。
通常認為,滲透測試是安全評估最終的也是最具侵犯性的形式,它必須由符合資質的專業人士實施。在進行評估之前,有關人員可能了解也可能不了解目標的具體情況。滲透測試可用於評估所有的IT基礎設施,包括應用程序、網路設備、操作系統、通信設備、物理安全和人類心理學。滲透測試的工作成果就是一份滲透測試報告。這種報告分為多個部分闡述在當前的目標系統里找到的安全弱點,並且會討論可行的對抗措施和其他改進建議。充分應用滲透測試方法論,有助於測試人員在滲透測試的各個階段深入理解並透徹分析當前存在的防禦措施。
滲透測試的種類
雖然滲透測試各種各樣,但是業內普遍將其劃分為兩類:白盒測試和黑盒測試。
1、黑盒測試
在進行黑盒測試時,安全審計員在不清楚被測單位的內部技術構造的情況下,從外部評估網路基礎設施的安全性。在滲透測試的各個階段,黑盒測試藉助真實世界的黑客技術,暴露出目標的安全問題,甚至可以揭露尚未被他人利用的安全弱點。滲透測試人員應能理解安全弱點,將之分類並按照風險級別(高、中、低)對其排序。通常來說,風險級別取決於相關弱點可能形成的危害的大小。老練的滲透測試專家應能確定可引發安全事故的所有攻擊模式。當測試人員完成黑盒測試的所有測試工作之後,他們會把與測試對象安全狀況有關的必要信息進行整理,並使用業務的語言描述這些被識別出來的風險,繼而將之匯總為書面報告。黑盒測試的市場報價通常會高於白盒測試。
2、白盒測試
白盒測試的審計員可以獲取被測單位的各種內部資料甚至不公開資料,所以滲透測試人員的視野更為開闊。若以白盒測試的方法評估安全漏洞,測試人員可以以最小的工作量達到最高的評估精確度。白盒測試從被測系統環境自身出發,全面消除內部安全問題,從而增加了從單位外部滲透系統的難度。黑盒測試起不到這樣的作用。白盒測試所需的步驟數目與黑盒測試不相上下。另外,若能將白盒測試與常規的研發生命周期相結合,就可以在入侵者發現甚至利用安全弱點之前,盡可能最早地消除全部安全隱患。這使得白盒測試的時間、成本,以及發現、解決安全弱點的技術門檻都全面低於黑盒測試。

B. 滲透測試應該怎麼做呢

01、信息收集
1、域名、IP、埠
域名信息查詢:信息可用於後續滲透
IP信息查詢:確認域名對應IP,確認IP是否真實,確認通信是否正常
埠信息查詢:NMap掃描,確認開放埠
發現:一共開放兩個埠,80為web訪問埠,3389為windows遠程登陸埠,嘿嘿嘿,試一下
發現:是Windows Server 2003系統,OK,到此為止。
2、指紋識別
其實就是網站的信息。比如通過可以訪問的資源,如網站首頁,查看源代碼:
看看是否存在文件遍歷的漏洞(如圖片路徑,再通過…/遍歷文件)
是否使用了存在漏洞的框架(如果沒有現成的就自己挖)
02、漏洞掃描
1、主機掃描
Nessus
經典主機漏掃工具,看看有沒有CVE漏洞:
2、Web掃描
AWVS(Acunetix | Website Security Scanner)掃描器
PS:掃描器可能會對網站構成傷害,小心謹慎使用。
03、滲透測試
1、弱口令漏洞
漏洞描述
目標網站管理入口(或資料庫等組件的外部連接)使用了容易被猜測的簡單字元口令、或者是默認系統賬號口令。
滲透測試
① 如果不存在驗證碼,則直接使用相對應的弱口令字典使用burpsuite 進行爆破
② 如果存在驗證碼,則看驗證碼是否存在繞過、以及看驗證碼是否容易識別
風險評級:高風險
安全建議
① 默認口令以及修改口令都應保證復雜度,比如:大小寫字母與數字或特殊字元的組合,口令長度不小於8位等
② 定期檢查和更換網站管理口令
2、文件下載(目錄瀏覽)漏洞
漏洞描述
一些網站由於業務需求,可能提供文件查看或下載的功能,如果對用戶查看或下載的文件不做限制,則惡意用戶就能夠查看或下載任意的文件,可以是源代碼文件、敏感文件等。
滲透測試
① 查找可能存在文件包含的漏洞點,比如js,css等頁面代碼路徑
② 看看有沒有文件上傳訪問的功能
③ 採用…/來測試能否誇目錄訪問文件
風險評級:高風險
安全建議
① 採用白名單機制限制伺服器目錄的訪問,以及可以訪問的文件類型(小心被繞過)
② 過濾【./】等特殊字元
③ 採用文件流的訪問返回上傳文件(如用戶頭像),不要通過真實的網站路徑。
示例:tomcat,默認關閉路徑瀏覽的功能:
<param-name>listings</param-name>
<param-value>false</param-value>

3、任意文件上傳漏洞
漏洞描述
目標網站允許用戶向網站直接上傳文件,但未對所上傳文件的類型和內容進行嚴格的過濾。

滲透測試

① 收集網站信息,判斷使用的語言(PHP,ASP,JSP)
② 過濾規則繞過方法:文件上傳繞過技巧

風險評級:高風險

安全建議

① 對上傳文件做有效文件類型判斷,採用白名單控制的方法,開放只允許上傳的文件型式;

② 文件類型判斷,應對上傳文件的後綴、文件頭、圖片類的預覽圖等做檢測來判斷文件類型,同時注意重命名(Md5加密)上傳文件的文件名避免攻擊者利用WEB服務的缺陷構造畸形文件名實現攻擊目的;

③ 禁止上傳目錄有執行許可權;

④ 使用隨機數改寫文件名和文件路徑,使得用戶不能輕易訪問自己上傳的文件。

4、命令注入漏洞

漏洞描述

目標網站未對用戶輸入的字元進行特殊字元過濾或合法性校驗,允許用戶輸入特殊語句,導致各種調用系統命令的web應用,會被攻擊者通過命令拼接、繞過黑名單等方式,在服務端運行惡意的系統命令。

滲透測試

風險評級:高風險

安全建議

① 拒絕使用拼接語句的方式進行參數傳遞;

② 盡量使用白名單的方式(首選方式);

③ 過濾危險方法、特殊字元,如:【|】【&】【;】【』】【"】等

5、SQL注入漏洞

漏洞描述

目標網站未對用戶輸入的字元進行特殊字元過濾或合法性校驗,允許用戶輸入特殊語句查詢後台資料庫相關信息

滲透測試

① 手動測試:判斷是否存在SQL注入,判斷是字元型還是數字型,是否需要盲注

② 工具測試:使用sqlmap等工具進行輔助測試

風險評級:高風險

安全建議

① 防範SQL注入攻擊的最佳方式就是將查詢的邏輯與其數據分隔,如Java的預處理,PHP的PDO

② 拒絕使用拼接SQL的方式

6、跨站腳本漏洞

漏洞描述

當應用程序的網頁中包含不受信任的、未經恰當驗證或轉義的數據時,或者使用可以創建 HTML或JavaScript 的瀏覽器 API 更新現有的網頁時,就會出現 XSS 缺陷。XSS 讓攻擊者能夠在受害者的瀏覽器中執行腳本,並劫持用戶會話、破壞網站或將用戶重定向到惡意站點。

三種XSS漏洞:

① 存儲型:用戶輸入的信息被持久化,並能夠在頁面顯示的功能,都可能存在存儲型XSS,例如用戶留言、個人信息修改等。

② 反射型:URL參數需要在頁面顯示的功能都可能存在反射型跨站腳本攻擊,例如站內搜索、查詢功能。

③ DOM型:涉及DOM對象的頁面程序,包括:document.URL、document.location、document.referrer、window.location等

滲透測試

存儲型,反射型,DOM型

風險評級:高風險

安全建議

① 不信任用戶提交的任何內容,對用戶輸入的內容,在後台都需要進行長度檢查,並且對【<】【>】【"】【』】【&】等字元做過濾
② 任何內容返回到頁面顯示之前都必須加以html編碼,即將【<】【>】【"】【』】【&】進行轉義。

7、跨站請求偽造漏洞

漏洞描述

CSRF,全稱為Cross-Site Request Forgery,跨站請求偽造,是一種網路攻擊方式,它可以在用戶毫不知情的情況下,以用戶的名義偽造請求發送給被攻擊站點,從而在未授權的情況下進行許可權保護內的操作,如修改密碼,轉賬等。

滲透測試

風險評級:中風險(如果相關業務極其重要,則為高風險)

安全建議

① 使用一次性令牌:用戶登錄後產生隨機token並賦值給頁面中的某個Hidden標簽,提交表單時候,同時提交這個Hidden標簽並驗證,驗證後重新產生新的token,並賦值給hidden標簽;

② 適當場景添加驗證碼輸入:每次的用戶提交都需要用戶在表單中填寫一個圖片上的隨機字元串;

③ 請求頭Referer效驗,url請求是否前部匹配Http(s)😕/ServerHost

④ 關鍵信息輸入確認提交信息的用戶身份是否合法,比如修改密碼一定要提供原密碼輸入

⑤ 用戶自身可以通過在瀏覽其它站點前登出站點或者在瀏覽器會話結束後清理瀏覽器的cookie;

8、內部後台地址暴露

漏洞描述

一些僅被內部訪問的地址,對外部暴露了,如:管理員登陸頁面;系統監控頁面;API介面描述頁面等,這些會導致信息泄露,後台登陸等地址還可能被爆破。

滲透測試

① 通過常用的地址進行探測,如login.html,manager.html,api.html等;

② 可以借用burpsuite和常規頁面地址字典,進行掃描探測

風險評級:中風險

安全建議

① 禁止外網訪問後台地址

② 使用非常規路徑(如對md5加密)

9、信息泄露漏洞

漏洞描述

① 備份信息泄露:目標網站未及時刪除編輯器或者人員在編輯文件時,產生的臨時文件,或者相關備份信息未及時刪除導致信息泄露。

② 測試頁面信息泄露:測試界面未及時刪除,導致測試界面暴露,被他人訪問。

③ 源碼信息泄露:目標網站文件訪問控制設置不當,WEB伺服器開啟源碼下載功能,允許用戶訪問網站源碼。

④ 錯誤信息泄露:目標網站WEB程序和伺服器未屏蔽錯誤信息回顯,頁面含有CGI處理錯誤的代碼級別的詳細信息,例如SQL語句執行錯誤原因,PHP的錯誤行數等。

⑤ 介面信息泄露:目標網站介面訪問控制不嚴,導致網站內部敏感信息泄露。

滲透測試

① 備份信息泄露、測試頁面信息泄露、源碼信息泄露,測試方法:使用字典,爆破相關目錄,看是否存在相關敏感文件

② 錯誤信息泄露,測試方法:發送畸形的數據報文、非正常的報文進行探測,看是否對錯誤參數處理妥當。

③ 介面信息泄露漏洞,測試方法:使用爬蟲或者掃描器爬取獲取介面相關信息,看目標網站對介面許可權是否合理

風險評級:一般為中風險,如果源碼大量泄漏或大量客戶敏感信息泄露。

安全建議

① 備份信息泄露漏洞:刪除相關備份信息,做好許可權控制

② 測試頁面信息泄露漏洞:刪除相關測試界面,做好許可權控制

③ 源碼信息泄露漏洞:做好許可權控制

④ 錯誤信息泄露漏洞:將錯誤信息對用戶透明化,在CGI處理錯誤後可以返回友好的提示語以及返回碼。但是不可以提示用戶出錯的代碼級別的詳細原因

⑤ 介面信息泄露漏洞:對介面訪問許可權嚴格控制

10、失效的身份認證

漏洞描述

通常,通過錯誤使用應用程序的身份認證和會話管理功能,攻擊者能夠破譯密碼、密鑰或會話令牌, 或者利用其它開發缺陷來暫時性或永久性冒充其他用戶的身份。

滲透測試

① 在登陸前後觀察,前端提交信息中,隨機變化的數據,總有與當前已登陸用戶進行綁定的會話唯一標識,常見如cookie

② 一般現在網站沒有那種簡單可破解的標識,但是如果是跨站認證,單點登錄場景中,可能為了開發方便而簡化了身份認證

風險評級:高風險

安全建議

① 使用強身份識別,不使用簡單弱加密方式進行身份識別;

② 伺服器端使用安全的會話管理器,在登錄後生成高度復雜的新隨機會話ID。會話ID不能在URL中,可以安全地存儲,在登出、閑置超時後使其失效。

11、失效的訪問控制

漏洞描述

未對通過身份驗證的用戶實施恰當的訪問控制。攻擊者可以利用這些缺陷訪問未經授權的功能或數據,例如:訪問其他用戶的帳戶、查看敏感文件、修改其他用戶的數據、更改訪問許可權等。

滲透測試

① 登入後,通過burpsuite 抓取相關url 鏈接,獲取到url 鏈接之後,在另一個瀏覽器打開相關鏈接,看能夠通過另一個未登入的瀏覽器直接訪問該功能點。

② 使用A用戶登陸,然後在另一個瀏覽器使用B用戶登陸,使用B訪問A獨有的功能,看能否訪問。

風險評級:高風險

安全建議

① 除公有資源外,默認情況下拒絕訪問非本人所有的私有資源;

② 對API和控制器的訪問進行速率限制,以最大限度地降低自動化攻擊工具的危害;

③ 當用戶注銷後,伺服器上的Cookie,JWT等令牌應失效;

④ 對每一個業務請求,都進行許可權校驗。

12、安全配置錯誤

漏洞描述

應用程序缺少適當的安全加固,或者雲服務的許可權配置錯誤。

① 應用程序啟用或安裝了不必要的功能(例如:不必要的埠、服務、網頁、帳戶或許可權)。

② 默認帳戶的密碼仍然可用且沒有更改。

③ 錯誤處理機制向用戶披露堆棧跟蹤或其他大量錯誤信息。

④ 對於更新的系統,禁用或不安全地配置最新的安全功能。

⑤ 應用程序伺服器、應用程序框架(如:Struts、Spring、ASP.NET)、庫文件、資料庫等沒有進行相關安全配置。

滲透測試

先對應用指紋等進行信息搜集,然後針對搜集的信息,看相關應用默認配置是否有更改,是否有加固過;埠開放情況,是否開放了多餘的埠;

風險評級:中風險

安全建議

搭建最小化平台,該平台不包含任何不必要的功能、組件、文檔和示例。移除或不安裝不適用的功能和框架。在所有環境中按照標準的加固流程進行正確安全配置。

13、使用含有已知漏洞的組件

漏洞描述

使用了不再支持或者過時的組件。這包括:OS、Web伺服器、應用程序伺服器、資料庫管理系統(DBMS)、應用程序、API和所有的組件、運行環境和庫。

滲透測試

① 根據前期信息搜集的信息,查看相關組件的版本,看是否使用了不在支持或者過時的組件。一般來說,信息搜集,可通過http返回頭、相關錯誤信息、應用指紋、埠探測(Nmap)等手段搜集。

② Nmap等工具也可以用於獲取操作系統版本信息

③ 通過CVE,CNVD等平台可以獲取當前組件版本是否存在漏洞

風險評級:按照存在漏洞的組件的安全風險值判定當前風險。

安全建議

① 移除不使用的依賴、不需要的功能、組件、文件和文檔;

② 僅從官方渠道安全的獲取組件(盡量保證是最新版本),並使用簽名機制來降低組件被篡改或加入惡意漏洞的風險;

③ 監控那些不再維護或者不發布安全補丁的庫和組件。如果不能打補丁,可以考慮部署虛擬補丁來監控、檢測或保護。
詳細學習可參考:

C. 如何進行Web滲透測試

什麼是滲透測試?

滲透測試,是滲透測試工程師完全模擬黑客可能使用的攻擊技術和漏洞發現技術,對目標網路、主機、應用的安全作深入的探測,發現系統最脆弱的環節。

如何進行Web滲透測試?

完整web滲透測試框架當需要測試的web應用數以千計,就有必要建立一套完整的安全測試框架,流程的最高目標是要保證交付給客戶的安全測試服務質量。

1、立項:項目建立,時間安排,人力分配,目標制定,廠商介面人確定;

系統分析&威脅分析:針對具體的web應用,分析系統架構、使用的組件、對外提供的介面等,以STRIDE為威脅模型進行對應的安全威脅分析,輸出安全威脅分析表,重點關注top3威脅;

制定測試用例:根據威脅分析的結果制定對應的測試用例,測試用例按照模板輸出,具備可執行性;

測試執行&漏洞挖掘:測試用例執行&發散測試,挖掘對應的安全問題or漏洞;

問題修復&回歸測試:指導客戶應用開發方修復安全問題or漏洞,並進行回歸測試,確保安全問題or漏洞得到修復,並且沒有引入新的安全問題;

項目總結評審:項目過程總結,輸出文檔評審,相關文檔歸檔。

2、Web應用的滲透測試流程

主要分為3個階段,分別是:信息收集→漏洞發現→漏洞利用,下面仔細分析一下各個階段流程:

一、信息收集

在信息收集階段,我們需要盡量多的收集關於目標web應用的各種信息,比如:腳本語言的類型、伺服器的類型、目錄的結構、使用的開源軟體、資料庫類型、所有鏈接頁面,用到的框架等

腳本語言的類型:常見的腳本語言的類型包括:php、asp、aspx、jsp等

測試方法:

1 爬取網站所有鏈接,查看後綴

2 直接訪問一個不存在頁面後面加不同的後綴測試

3 查看robots.txt,查看後綴

伺服器的類型:常見的web伺服器包括:apache、tomcat、IIS、ngnix等

測試方法:

1 查看header,判斷伺服器類型

2 根據報錯信息判斷

3 根據默認頁面判斷

目錄的結構:了解更多的目錄,可能發現更多的弱點,如:目錄瀏覽、代碼泄漏等。

測試方法

1 使用字典枚舉目錄

2 使用爬蟲爬取整個網站,或者使用google等搜索引擎獲取

3 查看robots.txt是否泄漏

使用的開源軟體:我們如果知道了目標使用的開源軟體,我們可以查找相關的軟體的漏洞直接對網站進行測試。

測試方法

指紋識別(網路上有很多開源的指紋識別工具)

資料庫類型:對於不同的資料庫有不同的測試方法。

測試方法

1 使應用程序報錯,查看報錯信息

2 掃描伺服器的資料庫埠(沒做NAT且防火牆不過濾時有效)

所有鏈接頁面:這個跟前面的獲取目錄結構類似,但是這個不只是獲取網站的所有功能頁面,有時候還可以獲取到管理員備份的源碼。

測試方法

1 使用字典枚舉頁面

2 使用爬蟲爬取整個網站,或者使用google等搜索引擎獲取

3 查看robots.txt是否泄漏

用到的框架:很多網站都利用開源的框架來快速開發網站,所以收集網站的框架信息也是非常關鍵的。

測試方法

指紋識別(網路上有很多開源的指紋識別工具)

二、漏洞發現

在這個階段我們在做測試的時候要對症下葯,不能盲目的去掃描,首先要確定目標應用是否使用的是公開的開源軟體,開源框架等、然後在做深一度的漏洞掃描。

關於開源軟體的漏洞發現

開源的軟體:常見的開源軟體有wordpress、phpbb、dedecms等

開源的框架:常見的開源框架有Struts2、 Spring MVC、ThinkPHP等

中間件伺服器:常見的中間件伺服器有jboss、tomcat、Weblogic等

資料庫服務:常見的資料庫服務mssql、mysql、oracle、redis、sybase、MongoDB、DB2等

對於開源軟體的測試方法

1 通過指紋識別軟體判斷開源軟體的版本信息,針對不同的版本信息去開放的漏洞資料庫查找相應版本的漏洞進行測試

2 對於默認的後台登錄頁、資料庫服務埠認證等入口可以進行簡單的暴力破解、默認口令嘗試等操作

3 使用開源的漏洞發現工具對其進行漏洞掃描,如:WPScan

關於自主開發的應用

手動測試:這個階段,我們需要手工測試所有與用戶交互的功能,比如:留言、登入、下單、退出、退貨、付款等操作

軟體掃描:使用免費的軟體掃描,如:appscan、wvs、netsparker,burp等

可能存在的漏洞

Owasp關鍵點

代碼安全之上傳文件

代碼安全之文件包含

代碼安全之SSRF

邏輯漏洞之密碼重置

邏輯漏洞之支付漏洞

邏輯漏洞之越權訪問

平台安全之中間件安全

三、漏洞利用

針對不同的弱點有不同的漏洞利用方式,需要的知識點也比較多。一般這個階段包括兩種方式,一種是手工測試,一種是工具測試

手工測試

手工測試是通過客戶端或伺服器訪問目標服務,手工向目標程序發送特殊的數據,包括有效的和無效的輸入,觀察目標的狀態、對各種輸入的反應,根據結果來發現問題的漏洞檢測技術。手工測試不需要額外的輔助工具,可由測試者獨立完成,實現起來比較簡單。但這種方法高度依賴於測試者,需要測試者對目標比較了解。手工測試可用於Web應用程序、瀏覽器及其他需要用戶交互的程序。

這種方式對於有特殊過濾等操作,或者網路上沒有成型的利用工具的時候可以使用。

工具測試

網路上有很多好用的免費利用工具,比如針對sql注入的sqlmap、針對軟體漏洞的matesploit等。

D. 一個完整的滲透測試流程,分為那幾塊,每一塊有哪些內容

包含以下幾個流程:

信息收集

第一步做的就是信息收集,根據網站URL可以查出一系列關於該網站的信息。通過URL我們可以查到該網站的IP、該網站操作系統、腳本語言、在該伺服器上是否還有其他網站等等一些列的信息。

漏洞探測

當我們收集到了足夠多的信息之後,我們就要開始對網站進行漏洞探測了。探測網站是否存在一些常見的Web漏洞,比如:SQL注入 。

漏洞利用

探測到了該網站存在漏洞之後,就要對該漏洞進行利用了。不同的漏洞有不同的利用工具,很多時候,通過一個漏洞我們很難拿到網站的webshell,我們往往需要結合幾個漏洞來拿webshell。

內網滲透

當我們能跟內網主機進行通信後,我們就要開始進行內網滲透了。可以先使用nmap對內網主機進行掃描,探測在線的主機,並且探測其使用的操作系統、開放的埠等信息。

內網中也有可能存在供內網使用的內網伺服器,可以進一步滲透拿下其許可權。

痕跡清除

達到了目的之後,有時候只是為了黑入網站掛黑頁,炫耀一下;或者在網站留下一個後門,作為肉雞,沒事的時候上去溜達溜達;亦或者掛入挖礦木馬。

撰寫滲透測試保告

在完成了滲透測試之後,就需要對這次滲透測試撰寫滲透測試報告了。明確的寫出哪裡存在漏洞,以及漏洞修補的方法。以便於網站管理員根據我們的滲透測試報告修補這些漏洞和風險,防止被黑客攻擊。