網絡安全知識科普

簡答給大家介紹一下,在網絡安全中常見名詞
一、什麼是漏洞

漏洞是指一個系統存在的弱點或缺陷,系統對特定威脅攻擊或危險事件的敏感性,或進行攻擊威脅的可能性。漏洞可能來自應用軟件或操作系統設計時的缺陷或編碼時產生的錯誤,也可能來自業務在交互處理過程中的設計缺陷或邏輯流程上的不合理之處。這些缺陷、錯誤或不合理之處可能被有意、無意地利用,從而對一個組織的資產或運行造成不利影響,如信息系統被攻擊或控制、重要資料被竊取、用戶數據被篡改、系統被作爲入侵其他主機系統的跳板等。從目前發現的漏洞來看,應用軟件中的漏洞遠遠多於操作系統中的漏洞,特別是 Web應用系統中的漏洞更是佔信息系統漏洞中的絕大多數。

二、Web漏洞的分類

1、SQL注入

SQL注入就是通過把SQL命令插入到Web表單,遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令的目的。

2、XSS(跨站腳本攻擊)

跨站腳本攻擊(Cross Site Scripting,縮寫爲XSS),爲了不與層疊樣式表(Cascading Style Sheets)的縮寫CSS混淆,故將跨站腳本攻擊縮寫爲XSS。XSS是一種經常出現在Web應用中的計算機安全漏洞,其允許惡意Web用戶將代碼植入到提供給其他用戶使用的頁面中,這些代碼包括HTML代碼和客戶端腳本。攻擊者利用XSS漏洞進行非法訪問控制——例如同源策略(Same Origin Policy)。這種類型的漏洞由於被黑客用來編寫危害性更大的網絡釣魚(Phishing)攻擊,所以廣爲人知。對於跨站腳本攻擊,黑客界的共識是:跨站腳本攻擊是新型的“緩衝區溢出攻擊”,而JavaScript是新型的“ShellCode”。

3、文件上傳

文件上傳漏洞是指用戶上傳一個可執行的腳本文件,並通過此腳本文件獲得了執行服務器端命令的能力。這種攻擊方式是最爲直接和有效的,有時幾乎不具有技術門檻。

“文件上傳”本身沒有問題,有問題的是文件上傳之後服務器怎麼處理、解釋文件。如果服務器的處理邏輯做得不夠安全,則會有嚴重的不安全隱患。

4、文件下載

可以下載網站所有的信息數據,包括源碼、網站的配置文件等信息。

5、目錄遍歷

如果Web設計者設計的Web內容沒有恰當的訪問控制,允許HTTP遍歷,攻擊者就可以訪問受限的目錄,並可以在Web根目錄以外執行命令。

6、本地文件包含(Local File Include)

這是PHP腳本的一大特色,程序員們爲了開發方便常常會用到包含。比如把一系列功能函數都寫進fuction.php中,之後當某個文件需要調用時就直接在文件頭中寫上一句<?php include(“fuction.php”);?>,然後調用內部定義的函數。

本地包含漏洞是PHP中一種典型的高危漏洞。由於程序員未對用戶可控的變量進行輸入檢查,導致用戶可以控制被包含的文件名,當被成功利用時可以使Web Server將特定文件當成PHP腳本執行,從而導致用戶獲取一定的服務器權限。
7、遠程文件包含

服務器通過PHP的特性(函數)去包含任意文件時,由於要包含的文件來源過濾不嚴,可以包含一個惡意文件,而我們可以構造這個惡意文件達到滲透系統的目的。幾乎所有的 CGI程序都有這樣的Bug,只是具體的表現方式不一樣罷了。

8、全局變量覆蓋

register_globals是PHP中的一個控制選項,可以設置成Off或者On,默認爲Off,決定是否將EGPCS(EGPCS是Environment、GET、POST、Cookie、Server的縮寫)變量註冊爲全局變量。

如果打開register_globals,客戶端提交的數據中含有GLOBALS變量名,就會覆蓋服務器上的$GLOBALS變量。

9、代碼執行

由於開發人員編寫源碼時沒有針對代碼中可執行的特殊函數入口做過濾,導致客戶端可以提交惡意構造語句,並交由服務器端執行。Web服務器沒有過濾類似system()、eval()、exec()等函數是該漏洞攻擊成功的最主要原因。

10、信息泄露

由於代碼編寫不嚴謹或應用固有的功能,造成網站服務器信息被非法獲取,但這只是一個低危漏洞。

11、弱口令

弱口令的危害就猶如你買了一個高級保險箱,什麼刀斧工具都破壞不了它,但遺憾的是你把鑰匙掛在了門上。常見的弱密碼出現在個人郵箱、網遊賬號、系統口令等環境。

12、跨目錄訪問

開發人員沒有正確地限制能夠訪問存儲系統的網頁路徑。通常,跨目錄攻擊的受害者大多是社交網站,或者是全球性的Web服務器。因爲在同一個Web服務器上可能爲不同的用戶或部門分配不同的目錄。例如,每個MySpace用戶都有一個個人的網絡空間。此時,如果使用Cookie或者DOM存儲,就可能產生跨目錄攻擊。

13、緩衝區溢出

緩衝區溢出是一種非常普遍、非常危險的漏洞,在各種操作系統、應用軟件中廣泛存在。利用緩衝區溢出攻擊會導致程序運行失敗、系統宕機、重新啓動等後果。更爲嚴重的是,可以利用它執行非授權指令,甚至可以取得系統特權進而進行各種非法操作。

14、Cookies欺騙

Cookies 能夠讓網站服務器把少量數據儲存到客戶端的硬盤,或從客戶端的硬盤讀取數據。當你瀏覽某網站時,由Web服務器置於你硬盤上一個非常小的文本文件,它可以記錄你的用戶ID、密碼、瀏覽過的網頁、停留的時間等信息。當你再次來到該網站時,網站通過讀取Cookies得知你的相關信息,就可以做出相應的動作,如在頁面顯示歡迎你的標語,或者讓你不用輸入ID、密碼就可以直接登錄等。

從本質上講,它可以看作是你的身份證。但Cookies不能作爲代碼執行,也不會傳送病毒,爲你所專有,且只能由提供它的服務器來讀取。保存的信息片斷以“名/值對”(Name-Value Pairs)的形式儲存,一個“名/值對”僅僅是一條命名的數據。Cookies欺騙就是修改其中保存的信息,從而實現某些特殊的目的。

15、反序列化

如果服務端程序沒有對用戶可控的序列化代碼進行校驗,而是直接進行反序列化使用,並且在程序中運行一些比較危險的邏輯(如登錄驗證等),那麼就會觸發一些意想不到的漏洞。比如經典的有Weblogic反序列化和Joomla反序列化漏洞。

16、CSRF(跨站請求僞造)

攻擊者通過用戶的瀏覽器注入額外的網絡請求,破壞一個網站會話的完整性。瀏覽器的安全策略是允許當前頁面發送到任何地址,因此也就意味着當用戶在瀏覽其無法控制的資源時,攻擊者可以控制頁面的內容來控制瀏覽器,發送其精心構造的請求。

17、命令注入

系統對用戶輸入的數據沒有進行嚴格過濾就運用,並且使用bash或cmd執行。

三、漏洞挖掘常用的方法

1、SQL注入

對於注入漏洞,通常我們在 URL後加單引號即可判斷是否有注入漏洞。如http://www.isafe.cc/list.asp?id=1後加單引號,即http://www.isafe.cc/list.asp?id=1’,這時服務器會把1’代入數據庫查詢,然後頁面報錯,而對於不同的數據庫錯誤信息也不一樣。

對於不報錯的頁面,可以使用and 1=1和and 1=2,並根據頁面返回內容判斷是否有注入。如果and 1=1和and 1=2返回的頁面內容不同,則可以斷定存在注入。比如,第一次提交的URL http://www.isafe.cc/list.asp?id=1 and 1=1頁面有返回內容,而第二次提交的URL http://www.isafe.cc/list.asp?id=1 and 1=2頁面沒有完整的內容,則可以斷定存在SQL注入。

對於有些特定的Web頁面後端查詢,比如Update、Delete、Insert等,可以使用Sleep等函數(數據庫不同則函數不同)進行 SQL注入,比如提交 URL http://www.isafe.cc/list.asp?id=1 and sleep(5),如果頁面等待幾秒鐘才返回,則可以斷定存在SQL注入。

SQL注入一般有基於報錯的注入、基於布爾值的注入和基於時間的注入。

2、XSS(跨站漏洞)

跨站漏洞一般出現在 Web瀏覽器端,分爲反射型、存儲型等,跨站可用來盜取其他用戶的Cookie,雖然沒有SQL注入危害大,但也被業界評爲高危漏洞,一般在URL後加入<script>alert(“www.isafe.cc”);</script>,如果頁面有彈框,則表示存在跨站漏洞。

3、文件上傳

文件上傳漏洞一般視情況而定,有些是中間件的漏洞如 apache、nginx、iis等。對於apache上傳1.php.bak這樣的文件是可以作爲PHP文件執行的(某些版本),對於nginx上傳1.jpg文件,訪問http://www.isafe.cc/upload/1.jpg/1.php就可以執行PHP代碼。對於iis 6.0上傳1.asp、1.jpg這樣的文件可以被作爲ASP來執行,建立1.asp文件夾,在1.asp文件下的任意後綴文件都可以作爲ASP來執行。有些是代碼過濾不嚴謹造成的任意文件上傳,有些代碼對文件上傳根本不過濾,對應過濾的文件也可以通過各種方法繞過上傳。文件上傳視情況而定,有各種各樣可利用的方法。

4、文件下載

下載系統上的任意文件,如數據庫配置文件、密碼文件Shadow等,Web層面會提供下載附件或軟件的功能,一般形式如http://www.isafe.cc/download.php?filename= /files/document.doc,Web後端會根據filename參數在指定的目錄中讀取文件的內容返回給瀏覽器,如果修改filename爲http://www.isafe.cc/download.php?filename= …/…/…/… /…/…/…/etc/passwd這樣的形式,則可以跨越指定的目錄訪問系統的任意文件。

5、代碼執行

遠程代碼執行多見於PHP、Java等腳本語言中,PHP中的Eval、System、Assert、Popen等函數如果對外界傳入的參數直接使用,則會造成遠程代碼執行,我們在找漏洞的時候只要定位到相關函數,觀察相關函數的參數來源即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章