WEB安全測(cè)試分類及防范測(cè)試方法_第1頁
WEB安全測(cè)試分類及防范測(cè)試方法_第2頁
WEB安全測(cè)試分類及防范測(cè)試方法_第3頁
WEB安全測(cè)試分類及防范測(cè)試方法_第4頁
WEB安全測(cè)試分類及防范測(cè)試方法_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

WEB安全測(cè)試分類及防

范測(cè)試方法Lastupdatedat10:00amon25thDecember2020WEB安全測(cè)試分類及防范測(cè)試方法1Web應(yīng)用程序布署環(huán)境測(cè)試用來架構(gòu)Web網(wǎng)站的UNIX、LINUX、WINDOWS等服務(wù)器端操作系統(tǒng)和服務(wù)器軟件都可能存在漏洞(如前不久被發(fā)現(xiàn)的LINUX系統(tǒng)內(nèi)核漏洞),這些漏洞都會(huì)對(duì)Web應(yīng)用程序造成安全威脅。因此,在布署Web應(yīng)用程序前,應(yīng)對(duì)Web應(yīng)用程序的布署環(huán)境進(jìn)行嚴(yán)格的測(cè)試,檢查一切已知的漏洞,發(fā)現(xiàn)新的漏洞,將應(yīng)用程序環(huán)境帶來的安全威脅降底到最低程度。請(qǐng)求引發(fā)漏洞的測(cè)試超長(zhǎng)URL的HTTP請(qǐng)求,特殊格式字符的HTTP請(qǐng)求,某些不存在文件的HTTP請(qǐng)求,COMInternetServices(CIS)-RPCoverHTTP漏洞,從而引發(fā)拒絕服務(wù),源代碼顯示,站點(diǎn)物理路徑泄露,執(zhí)行任意命令及命令注入等安全問題。因此,對(duì)非常規(guī)URL的HTTP請(qǐng)求要做全面的測(cè)試,以發(fā)現(xiàn)這方面的漏洞。測(cè)試工作以人工方式為主,并配以Tripwire和AIDE的完整性檢查工具檢查系統(tǒng)文件,對(duì)于發(fā)現(xiàn)的漏洞,可采取關(guān)閉所有不必要的服務(wù)和安裝系統(tǒng)補(bǔ)丁加固系統(tǒng)。另外要保持對(duì)最新補(bǔ)丁和安全公告的追蹤,在實(shí)驗(yàn)環(huán)境進(jìn)行測(cè)試后正式安裝在布署Web應(yīng)用程序的主機(jī)上。操作系統(tǒng)目錄安全性及Web應(yīng)用程序布署環(huán)境目錄遍歷問題測(cè)試目錄權(quán)限和目錄安全性直接影響著Web的安全性。測(cè)試中要檢查Web應(yīng)用程序布署環(huán)境的目錄權(quán)限和安全性,不給惡意用戶任何可用的權(quán)限。目錄遍歷可能導(dǎo)致用戶從客戶端看到或下載、刪除Web服務(wù)器文件。因此,要測(cè)試Web應(yīng)用程序及布署環(huán)境是否存在目錄遍歷問題;若存在該漏洞,可通過在各級(jí)目錄中存放默認(rèn)文檔或及時(shí)升級(jí)系統(tǒng)來避免。系統(tǒng)中危險(xiǎn)組件的測(cè)試系統(tǒng)中危險(xiǎn)組件的存在,會(huì)給惡意用戶留下非常危險(xiǎn)的“后門”。如惡意用戶可利用Windows系統(tǒng)中存在的FileSystemObject組件篡改、下載或刪除服務(wù)器中的任何文件。因此,若系統(tǒng)中需要使用這些組件,可將這些組件更名;否則將其刪除。TCP端口測(cè)試開放非必要的端口,會(huì)給Web應(yīng)用程序帶來安全威脅。因此,在布署Web應(yīng)用程序前,要用端口掃描軟件對(duì)布署環(huán)境進(jìn)行TCP端口測(cè)試,禁止UDP,只開啟必要的TCP端口。另外,在系統(tǒng)運(yùn)行過程中要不斷測(cè)試,在服務(wù)器端使用lsofl具(ForUnix)或者InziderT具(Forwindows)掃描端口使用情況,必要時(shí)從遠(yuǎn)程使用Nmap工具進(jìn)行異常端口占用檢測(cè)。如果發(fā)現(xiàn)有未知的進(jìn)程占用端口,要關(guān)閉端口或殺掉進(jìn)程。2應(yīng)用程序測(cè)試應(yīng)用程序中存在的漏洞是影響Web安全的主要方面,程序員編寫的軟件都可能有漏洞,有些漏洞可能要經(jīng)過許多年后才會(huì)被發(fā)現(xiàn)。特別是不斷新加的功能,這些改動(dòng),都會(huì)帶來安全方面的問題。因此,應(yīng)用程序測(cè)試要伴隨著系統(tǒng)開發(fā)、布署和運(yùn)行的全過程。SQL注入漏洞測(cè)試SQL注入漏洞攻擊實(shí)現(xiàn)原理SQL(StructuredQueryLanguage)是一種用來和數(shù)據(jù)庫交互的語言文本aSQL注入的攻擊原理就是攻擊者通過Web應(yīng)用程序利用SQL語句或字符串將非法的數(shù)據(jù)插入到服務(wù)器端數(shù)據(jù)庫中,獲取數(shù)據(jù)庫的管理用戶權(quán)限,然后將數(shù)據(jù)庫管理用戶權(quán)限提升至操作系統(tǒng)管理用戶權(quán)限,控制服務(wù)器操作系統(tǒng),獲取重要信息及機(jī)密文件。SQL注入利用的是正常的HTTP服務(wù)端口,表面上看來和正常的web訪問沒有區(qū)別,隱蔽性極強(qiáng),不易被發(fā)現(xiàn)。SQL注入過程如上圖所示,SQL注入攻擊過程分為五個(gè)步驟:第一步:判斷Web環(huán)境是否可以SQL注入。如果URL僅是對(duì)網(wǎng)頁的訪問,不存在SQL注入問題,如:就是普通的網(wǎng)頁訪問。只有對(duì)數(shù)據(jù)庫進(jìn)行動(dòng)態(tài)查詢的業(yè)務(wù)才可能存在SQL注入,如:二39,其中id二39表示數(shù)據(jù)庫查詢變量,這種語句會(huì)在數(shù)據(jù)庫中執(zhí)行,因此可能會(huì)給數(shù)據(jù)庫帶來威脅。第二步:尋找SQL注入點(diǎn)。完成上一步的片斷后,就要尋找可利用的注入漏洞,通過輸入一些特殊語句,可以根據(jù)瀏覽器返回信息,判斷數(shù)據(jù)庫類型,從而構(gòu)建數(shù)據(jù)庫查詢語句找到注入點(diǎn)。第三步:猜解用戶名和密碼。數(shù)據(jù)庫中存放的表名、字段名都是有規(guī)律可言的。通過構(gòu)建特殊數(shù)據(jù)庫語句在數(shù)據(jù)庫中依次查找表名、字段名、用戶名和密碼的長(zhǎng)度,以及內(nèi)容。這個(gè)猜測(cè)過程可以通過網(wǎng)上大量注入工具快速實(shí)現(xiàn),并借肋破解網(wǎng)站輕易破譯用戶密碼。第四步:尋找WEB管理后臺(tái)入口。通常WEB后臺(tái)管理的界面不面向普通用戶開放,要尋找到后臺(tái)的登陸路徑,可以利用掃描工具快速搜索到可能的登陸地址,依次進(jìn)行嘗試,就可以試出管理臺(tái)的入口地址。第五步:入侵和破壞。成功登陸后臺(tái)管理后,接下來就可以任意進(jìn)行破壞行為,如篡改網(wǎng)頁、上傳木馬、修改、泄漏用戶信息等,并進(jìn)一步入侵?jǐn)?shù)據(jù)庫服務(wù)器。SQL注入漏洞防范措施SQL注入漏洞攻擊的防范方法有很多種,現(xiàn)階段總結(jié)起來有以下方法:數(shù)據(jù)有效性校驗(yàn)如果一個(gè)輸入框只可能包括數(shù)字,那么要通過校驗(yàn)確保用戶輸入的都是數(shù)字。如果可以接受字母,那就要檢查是不是存在不可接受的字符,最好的方法是增加字符復(fù)雜度自動(dòng)驗(yàn)證功能。確保應(yīng)用程序要檢查以下字符:分號(hào)、等號(hào)、破折號(hào)、括號(hào)以及SQL關(guān)鍵字。另外限制表單數(shù)據(jù)輸入和查詢字符串輸入的長(zhǎng)度也是一個(gè)好方法。如果用戶的登錄名最多只有10個(gè)字符,那么不要認(rèn)可表單中輸入10個(gè)以上的字符,這將大大增加攻擊者在SQL命令中插入有害代碼的難度。封裝數(shù)據(jù)信息對(duì)客戶端提交的數(shù)據(jù)進(jìn)行封裝,不要將數(shù)據(jù)直接存入cookie中.方法就是在編程的代碼中,插入session,if、try、else,這樣可以有效地防止攻擊者獲取cookie中的重要信息。(3)去除代碼中的敏感信息將在代碼中存在的用戶名、口令信息等敏感字段刪除,替換成輸入框。女口:SQL="selectfromuserswhereuseniame='admin'andpassword=T234567'"這樣顯然會(huì)暴露管理員的用戶名、口令信息。可以將其修改成SQL="select*fromuserswhereusername='"++"'anduserpwd='"++ 這樣就安全了很多,入侵者也是不會(huì)輕易的就獲取到用戶名、口令信息。(4)替換或刪除單引號(hào)使用雙引號(hào)替換掉所有用戶輸入的單引號(hào),這個(gè)簡(jiǎn)單的預(yù)防措施將在很大程度上預(yù)防SQL注入漏洞攻擊,單引號(hào)時(shí)常會(huì)無法約束插入數(shù)據(jù)的Value,可能給予輸入者不必要的權(quán)限。用雙引號(hào)替換掉單引號(hào)可以使大部分SQL注入漏洞攻擊失敗。女口:“select*fromuserswhereuseniame='"+admiii+”'anduseipwd=,u+1234567+”“'顯然會(huì)得到與"select*fiomuserswhereuseniame='admiii'andpassword='1234567r,相同的結(jié)果。指定錯(cuò)誤返回頁面攻擊者有時(shí)從客戶端嘗試提交有害代碼和攻擊字符串,根據(jù)WebService給出的錯(cuò)i吳提示信息來收集程序及服務(wù)器的信息,從而獲取想得到的資料。應(yīng)在WebService中指定一個(gè)不包含任何信息的錯(cuò)誤提示頁面。限制SQL字符串連接的配置文件使用SQL變量,因?yàn)樽兞坎皇强梢詧?zhí)行的腳本,即在Web頁面中將連接數(shù)據(jù)庫的SQL字符串替換成指定的Value,然后將文件進(jìn)行加密,拒絕訪問。設(shè)置Web目錄的訪問權(quán)限將虛擬站點(diǎn)的文件目錄禁止游客用戶(如:Guest用戶等)訪問,將User用戶權(quán)限修改成只讀權(quán)限,切勿將管理權(quán)限的用戶添加到訪問列表。最小服務(wù)原則Web服務(wù)器應(yīng)以最小權(quán)限進(jìn)行配置,只提供Web服務(wù),這樣可以有效地阻止系統(tǒng)的危險(xiǎn)命令,如ftp、cmd、vbscript等。⑼鑒別信息加密存儲(chǔ)將保存在數(shù)據(jù)庫users表中的用戶名、口令信息以密文形式保存,也可以對(duì)users表進(jìn)行加密處理.這樣可以大大增加對(duì)鑒別信息訪問的安全級(jí)別。(10)用戶權(quán)限分離應(yīng)盡可能的禁止或刪除數(shù)據(jù)庫中sa權(quán)限用戶的訪問,對(duì)不同的數(shù)據(jù)庫劃分不同的用戶權(quán)限,這樣不同的用戶只能對(duì)授權(quán)給自己的數(shù)據(jù)庫執(zhí)行查詢、插入、更新、刪除操作,就可以防止不同用戶對(duì)非授權(quán)的數(shù)據(jù)庫進(jìn)行訪問。SQL注入漏洞檢測(cè)方法SQL注入漏洞攻擊檢測(cè)分為入侵前的檢測(cè)和入侵后的檢測(cè)。入侵前的檢測(cè),可以通過手工方式,也可以使用SQL注入漏洞掃描工具軟件。檢測(cè)的目的是為預(yù)防SQL注入漏洞攻擊,而對(duì)于SQL注入漏洞攻擊后的檢測(cè),主要是針對(duì)審計(jì)曰志的查看,SQL注入漏洞攻擊成功后,會(huì)在WebService和數(shù)據(jù)庫的審計(jì)曰志中留下“痕跡”。檢測(cè)方法如下:(1)動(dòng)態(tài)SQL檢查動(dòng)態(tài)的SQL語句是一個(gè)進(jìn)行數(shù)據(jù)庫查詢的強(qiáng)大的工具.但把它和用戶輸入混合在—起就使SQL注入成為了可能。將動(dòng)態(tài)的SQL語句替換成預(yù)編譯的SQL或者存儲(chǔ)過程對(duì)大多數(shù)應(yīng)用程序是可行的。預(yù)編譯的SQL或者存儲(chǔ)過程可以將用戶的輸入作為參數(shù)而不是命令來執(zhí)行,這樣就限制了入侵者的行動(dòng)。當(dāng)然,它不適用于存儲(chǔ)過程中利用用戶輸入來生成SQL命令的情況。在這種情況下,用戶輸入的SQL命令仍可能得到執(zhí)行,數(shù)據(jù)庫仍然存在SQL注入漏洞攻擊的危險(xiǎn)。(2)有效性校驗(yàn)?如果一個(gè)輸入框只可能包括數(shù)字,那么要通過驗(yàn)證確保用戶輸入的都是數(shù)字。如果

可以接受字母,檢查是不是存在不可接受的字符,那就需要設(shè)置字符串檢查功能。確保應(yīng)用程序要檢查以下字符:分號(hào)、等號(hào)、破折號(hào)、括號(hào)以及SQL關(guān)鍵字。(3)數(shù)據(jù)表檢查?使用SQL注入漏洞攻擊工具軟件進(jìn)行SQL注入漏洞攻擊后,都會(huì)在數(shù)據(jù)庫中生成一些臨時(shí)表。通過查看數(shù)據(jù)庫中最近新建的表的結(jié)構(gòu)和內(nèi)容,可以判斷是否曾經(jīng)發(fā)生過SQL注入漏洞攻擊。審計(jì)日志檢查在Web服務(wù)器中如果啟用了審計(jì)日志功能,則WebService審計(jì)曰志會(huì)記錄訪問者的IP地址、訪問時(shí)間、訪問文件等信息,SQL注入漏洞攻擊往往會(huì)大量訪問某一個(gè)頁面文件(存在SQL注入點(diǎn)的動(dòng)態(tài)網(wǎng)頁),審計(jì)日志文件會(huì)急劇増加,通過查看審計(jì)曰志文件的大小以及審計(jì)曰志文件中的內(nèi)容,可以判斷是否發(fā)生過SQL注入漏洞攻擊事件;另外還可以通過查看數(shù)據(jù)庫審計(jì)曰志,查詢某個(gè)時(shí)間段是否有非法的插入、修改、刪除操作。其他?SQL注入漏洞攻擊成功后,入侵者往往會(huì)添加特權(quán)用戶(如:administrator.root,sa等)、開放非法的遠(yuǎn)程服務(wù)以及安裝木馬后門程序等.可以通過查看用戶帳戶列表、遠(yuǎn)程服務(wù)開啟情況、系統(tǒng)最近日期產(chǎn)生的一些文件等信息來判斷是否發(fā)生過入侵。SQL注入攻擊源于英文“SQLInjectionAttack"o微軟技術(shù)中心從兩個(gè)方面對(duì)SQL注入攻擊進(jìn)行了描述:一是腳本注入式的攻擊;二是惡意用戶輸入用來影響被執(zhí)行的SQL腳本。StephenKost對(duì)這種攻擊形式的描述是“從一個(gè)數(shù)據(jù)庫獲得未經(jīng)授權(quán)的訪問和直接檢索”。SQL注入就其本質(zhì)而言,是利用SQL語法,對(duì)應(yīng)用程序中的漏洞的攻擊。當(dāng)攻擊者能夠操縱數(shù)據(jù),在應(yīng)用程序中插入一些SQL語句時(shí),SQL注入攻擊就發(fā)生了。理論上,這種攻擊對(duì)于所有基于SQL語言標(biāo)準(zhǔn)的數(shù)據(jù)庫軟件都是有效的,包括MSSQLServer,Oracle,DB2,Sybase,MySQL等。特別是現(xiàn)在一些AQL注入攻擊工具的出現(xiàn),使得Web應(yīng)用更易遭到SQL注入攻擊。原始的手工測(cè)試不適用于大型Web應(yīng)用程序,可使用N-Stealth、WeblnspectxWiktoWebScarabsNikto等工具進(jìn)行掃描,測(cè)試系統(tǒng)是否存在SQL注入的安全漏洞。為防止SQL注入,程序員編寫代碼時(shí),要對(duì)客戶端和服務(wù)端進(jìn)行兩級(jí)檢查。檢查數(shù)據(jù)類型、數(shù)據(jù)長(zhǎng)度和敏感字符的合法性。客戶端檢查可減少網(wǎng)絡(luò)流量,降低服務(wù)器負(fù)荷,將一般誤操作、低等級(jí)攻擊與高等級(jí)攻擊行為區(qū)分開來。對(duì)于繞開客戶端檢查的攻擊,提交的數(shù)據(jù)被直接發(fā)往服務(wù)端,服務(wù)端檢查到的提交異?;究梢哉J(rèn)定為惡意攻擊行為所致,就應(yīng)中止提交信息的處理,進(jìn)行攻擊備案,并對(duì)客戶端給出出錯(cuò)或警告提示。另外,在構(gòu)造查詢時(shí),應(yīng)根據(jù)用戶輸入的內(nèi)容設(shè)置參數(shù)值來創(chuàng)建參數(shù)化查詢,從而避免SQL注入及由此帶來的安全問題。表單漏洞測(cè)試表單漏洞實(shí)現(xiàn)原理表單提交是當(dāng)前Web應(yīng)用中的重要內(nèi)容,用戶可以通過這種方式與服務(wù)器進(jìn)行數(shù)據(jù)傳遞。在通常情況下,會(huì)在提交表單之前在服務(wù)器上進(jìn)行表單數(shù)據(jù)的驗(yàn)證,這樣可以節(jié)省服務(wù)器資源,但同時(shí)也為服務(wù)器帶來了安全漏洞。表單提交的數(shù)據(jù)的驗(yàn)證和服務(wù)端數(shù)據(jù)接收的方法直接影響到Web的安全。隨著大量的支持參數(shù)的“模糊化”(“fuzzing”)、腐朽(corruption).以及野蠻強(qiáng)制増長(zhǎng)工具的出現(xiàn),使用非校驗(yàn)輸入進(jìn)行攻擊造成的安全問題越來越多。因此,表單漏洞測(cè)試是Web安全所必需的。表單漏洞防范措施為防止表單漏洞的攻擊,編程時(shí)應(yīng)有一個(gè)中心化的、強(qiáng)大的驗(yàn)證機(jī)制來對(duì)所有HTTP請(qǐng)求的輸入進(jìn)行驗(yàn)證,過濾可能危及后臺(tái)數(shù)據(jù)庫的特殊字符、腳本語言和命令。為防止攻擊者繞過客戶端的安全機(jī)制,對(duì)這些字符的檢測(cè)應(yīng)在Web服務(wù)端實(shí)現(xiàn),采用清除或者強(qiáng)制替換的方法避免服務(wù)器端的安全,并且使用MD5哈希(hash)函數(shù)或者時(shí)間戳數(shù)字簽名技術(shù)對(duì)客戶端敏感數(shù)據(jù)必須進(jìn)行完整性保護(hù)。解決這種漏洞的方法為在提交表單頁面進(jìn)行校驗(yàn)的同時(shí),在接收表單的處理頁面也進(jìn)行校驗(yàn),這樣即使用戶使用非法方式提交的非法數(shù)據(jù)通過了頁面驗(yàn)證也無法通過服務(wù)器上的驗(yàn)證。表單漏洞檢測(cè)方法表單數(shù)據(jù)提交測(cè)試。?對(duì)表單數(shù)據(jù)提交的測(cè)試,主要檢查程序中是否對(duì)表單所提交數(shù)據(jù)的完整性、正確性進(jìn)行了驗(yàn)證(如果在頁面部分進(jìn)行驗(yàn)證的話),如:查詢條件輸入一些特殊字符,比如“',,”',““”等會(huì)使查詢的SQL語句出錯(cuò)?檢查程序中是否屏蔽了表單提交的html語句、VBScript和Jscript等客戶端腳本語句?檢查是否會(huì)出現(xiàn)“腳本利用”問題?檢查程凈是否對(duì)表單域長(zhǎng)度進(jìn)行了真正的限制?檢查是否存在重復(fù)提交數(shù)據(jù)的問題?檢查這些驗(yàn)證是否在服務(wù)器端進(jìn)行

對(duì)表單提交數(shù)據(jù)的測(cè)試,可以采用手工和編寫可重復(fù)使用的腳本代碼相結(jié)合的方法,進(jìn)行邊界值測(cè)試、等價(jià)類測(cè)試,以及異常類測(cè)試。編寫的腳本代碼可以在測(cè)試、回歸測(cè)試時(shí)運(yùn)行。若在測(cè)試中發(fā)現(xiàn)數(shù)據(jù)完整性、正確性驗(yàn)證只是在客戶端進(jìn)行,應(yīng)在服務(wù)器端增加對(duì)表單提交數(shù)據(jù)的驗(yàn)證,防止出現(xiàn)本地提交表單的漏洞。⑵本地提交表單的漏洞測(cè)試。本地提交表單的漏洞容易受到參數(shù)篡改的攻擊。這類測(cè)試可用手工的方式進(jìn)行。對(duì)于如下用戶注冊(cè)頁面:<scripr>functioncheckUser<>{2. i£(MU3erNanie">?{4? (”bu匸ton”)?d2.sabled=^xue;alerts("用戶名不可以為空■);xeturnfalse;}else((”byton”)?dxsabled=false;1011121310111213141516171819functioncheckPsw<>{if("password")?value==,,R)((MjoutzonM)?d2,sajoled=^rue;alerted不町以為空";returnfalse;}el5e((Mbu?onM)?dxsabled=false;})</scripc><formac^ion=""method="POST"><input 匸”na^.e="u9erNanie"onblur="checkUser<>"/><inputti*pe=npassword"name="passwoxdM?nblur=McheckPaw()w/><inputri*pe=,'9ubniir"name="bu^con,'value=**M^m/></foxm>此頁面中的JavaScript對(duì)表單中用戶名和密碼是否為空進(jìn)行了判斷,如果用戶名或密碼有一者為空時(shí)就會(huì)將〃提交〃按鈕設(shè)置為不可用,這樣可以阻止用戶的提交。但是這個(gè)頁面的內(nèi)容可以完全通過查看頁面源代碼的方式看到,用戶可以通過查看源代碼的方式將其中的JavaScript部分去掉,同時(shí)將表單action請(qǐng)求指向此頁面原來的地址,然后將修改后的頁面保存為一個(gè)靜態(tài)HTML頁面,這樣就可以完成一個(gè)非法的數(shù)據(jù)提交。修改之后的頁面代碼如下:1. <foxmac^ion=method2"POSTM>2. <input onblur=wcheckUser<>"/><inputri*pe="passwoxd" onblur="checkPaw()**/>4. <inputr>*pe="submit"name="bu^con,'value="|>t^M/>5? </form>如此一個(gè)頁面,完全允許用戶提交任何一種數(shù)據(jù),包括空的用戶名和密碼。Cookie欺騙漏洞測(cè)試Cookie欺騙實(shí)現(xiàn)原理Cookie最先是由Netscape(網(wǎng)景)公司提出的,Netscape官方文檔中對(duì)Cookie的定義是這樣的:Cookie是在HTTP協(xié)議下,服務(wù)器或腳本可以維護(hù)客戶工作站上信息的一種方式。Cookie的用途非常廣泛,在網(wǎng)絡(luò)中經(jīng)常可以見到Cookie的身影。它通常被用來辨別用戶身份、進(jìn)行session跟蹤,最典型的應(yīng)用就是保存用戶的賬號(hào)和密碼用來自動(dòng)登錄網(wǎng)站和電子商務(wù)網(wǎng)站中的“購物車”。Cookie注入簡(jiǎn)單來說就是利用Cookie而發(fā)起的注入攻擊。從本質(zhì)上來講,Cookie注入與傳統(tǒng)的SQL注入并無不同,兩者都是針對(duì)數(shù)據(jù)庫的注入,只是表現(xiàn)形式上略有不同罷了。Cookie欺騙防范措施(1)刪除Cookie記錄在IE瀏覽器【工則T【Internet選項(xiàng)】中刪除Cookie,也可借肋相應(yīng)安全軟件來實(shí)現(xiàn)。⑵更改Cookie文件的保存位置在【Internet選項(xiàng)】對(duì)話框中單擊【設(shè)置】按鈕,在設(shè)置頁面單擊【移動(dòng)文件夾】出現(xiàn)如下圖,在其中設(shè)置相應(yīng)保存位置(如F:\),即可成功更改Cookie文件的保存位置。(3)添加防注入代碼Cookie欺騙監(jiān)測(cè)方法如果系統(tǒng)使用了cookie,就要對(duì)cookie的使用情況進(jìn)行檢測(cè)。檢查Cookies在生存期內(nèi)能否正常工作而且對(duì)這些信息是否加密,是否按預(yù)定的時(shí)間進(jìn)行保存,是否存在cookie可被偽造提交的問題,刷新對(duì)Cookie有什么影響及過期處理等°用戶身份驗(yàn)證測(cè)試用戶身份驗(yàn)證漏洞防范措施?限制用戶名、密碼最大字符數(shù)、字符類型?限制登錄次數(shù),超出允許次數(shù)后給出友好提示?限制用戶權(quán)限用戶身份驗(yàn)證,客戶端提交的密碼需加密,服務(wù)端驗(yàn)證密碼使用MD5,若在測(cè)試中發(fā)現(xiàn)問題,應(yīng)及時(shí)修改代碼,使用加密碼算法對(duì)密碼加密。用戶身份驗(yàn)證檢測(cè)方法?測(cè)試有效和無效的用戶名和密碼,測(cè)試是否大小寫敏感,是否有最大字符數(shù)的限制規(guī)則等。?測(cè)試重試次數(shù)的限制,如果登錄失敗的次數(shù)超過允許值,應(yīng)用程序?qū)?huì)做岀何種反應(yīng)(警如拒絕此IP地址在短時(shí)間內(nèi)的登錄)。?測(cè)試是否可以利用歷史登錄信息或以前的URL來繞開登錄程序。?測(cè)試執(zhí)行添加、刪除、修改等動(dòng)作中是否需要登錄操作,退出系統(tǒng)之后的操作是否仍可繼續(xù)等。?測(cè)試用戶密碼是否符合指定要求(字符、長(zhǎng)度),如果不符合,對(duì)有什么影響,新用戶自己修改密碼后,創(chuàng)建時(shí)分配的密碼是否會(huì)失效。?測(cè)試用戶賬戶過期后,是否完全、正確的刪除其信息或使其失效。?是否存在不驗(yàn)證而直接進(jìn)入Web應(yīng)用系統(tǒng)的問題,是否存在不登錄就可查看非會(huì)員頁面和權(quán)限問題。用戶身份驗(yàn)證測(cè)試一般使用手工和測(cè)試工具相結(jié)法的方法,若在測(cè)試中發(fā)現(xiàn)問題,應(yīng)及時(shí)修改代碼,使用加密碼算法對(duì)密碼加密,采用Session對(duì)象進(jìn)行登錄驗(yàn)證。文件操作漏洞測(cè)試文件操作漏洞實(shí)現(xiàn)原理上存漏洞常見有,,還有就是。另外還有一個(gè),就是保存文件存在漏洞。這類漏洞,主要是可以讀取用戶傳入路徑名稱,采用不正確的過濾方法,導(dǎo)致惡意用戶,將文件上存到非預(yù)期的地方.帶來安全隱患。文件操作漏洞防范措施抓住幾個(gè)地方即可,先來分析下,既然用戶要上存文件,而且文件將是多種多樣格式;可能有的文件內(nèi)容與用戶傳入格式不一致,有的文件內(nèi)容還夾雜木馬代碼。那么,我們讓用戶上存文件,跟站點(diǎn)文件做一個(gè)分別授權(quán),做隔離。?讓保存上存目錄獨(dú)立開來,目錄權(quán)限只讀不能執(zhí)行這一步從系統(tǒng)設(shè)計(jì)加以授權(quán),無論你上次什么文件,都不可能執(zhí)行到。就算我不做任何檢測(cè),你的文件都上存到這里了,也不會(huì)對(duì)我系統(tǒng)構(gòu)成安全。(如果有用戶上存一些反動(dòng)言語的圖片,那另外需要處理的)?不直接使用服務(wù)器傳入值,所有都要進(jìn)行檢測(cè)這類跟我們做一切輸入都是有害原則一樣,對(duì)于客戶端傳入的:type,name,都要進(jìn)行判斷,不直接使用。對(duì)于要生成到某個(gè)目錄,某個(gè)文件名。文件名最好方法是:自己寫死目錄(不要讀取傳入目錄),文件名,最好自己隨機(jī)生成,不讀取用戶文件名。文件擴(kuò)展名,可以取最右邊后面字符。以上2個(gè)方法,剛好從2個(gè)方面對(duì)上存做了整體約束。方法1:只要保證文件寫對(duì)了位置,然后從配置上,對(duì)寫入目錄進(jìn)行權(quán)限控制,這個(gè)是治本。可以做到,你無論上存什么文件,都讓你沒有權(quán)限跳出去可以運(yùn)行。方法2:保存上存文件名,按照自己指定目錄寫入,并且文件名自己生成的。以上2個(gè)方法,一起使用,可以保證文件正確存到地方,然后,權(quán)限可以控制。這里順便說明下,判斷用戶上存文件是否滿足要求類型,就直接檢查文件擴(kuò)展名,只要滿足擴(kuò)展名就讓上存。反正,做了執(zhí)行權(quán)限限制,你不按要求上存內(nèi)容,也無妨。反正,不能執(zhí)行,也不會(huì)有多大危害性的。正確步驟:讀取文件名,驗(yàn)證擴(kuò)展名是不是在范圍內(nèi)自己定義生成的文件名,目錄,擴(kuò)展名可以來自文件名擴(kuò)展名。其它值,都自己配置,不讀取上存中內(nèi)容3?將文件移到新目錄(這個(gè)目錄權(quán)限設(shè)置只讀)文件操作漏洞檢測(cè)方法?測(cè)試系統(tǒng)是否允許上傳腳本文件、可執(zhí)行文件等有可能給系統(tǒng)帶來危害的文件。?若有下載功能,可供下載的文件是否與系統(tǒng)的程序分別存放,是否存在數(shù)據(jù)庫文件、包含文件和頁面文件下載的可能。文件操作漏洞測(cè)試一般使用手工測(cè)試的方法,若發(fā)現(xiàn)問題,應(yīng)及時(shí)修改代碼并將可供下載的文件重新布署。Session測(cè)試客戶端對(duì)服務(wù)器端的欺騙攻擊攻擊原理在用戶訪問并登錄了某個(gè)網(wǎng)站后,該網(wǎng)站的服務(wù)器就會(huì)給該用戶機(jī)子上分配一個(gè)sessionid,此信息是通過客戶機(jī)的cookies存放在某一文件夾里面的。session本身并不是長(zhǎng)期有效,每一個(gè)session在客戶端關(guān)閉瀏覽器后sessionid都會(huì)自動(dòng)撤銷,但服務(wù)端默認(rèn)保存20分鐘。正是有這20分鐘的時(shí)間,給欺騙帶來了可能。服務(wù)器端對(duì)不同用戶的識(shí)別,只能通過sessionid進(jìn)行,也就是說網(wǎng)站服務(wù)器端是“只認(rèn)id不認(rèn)人”,只要id符合,就認(rèn)為是合法用戶,所以攻擊者只要得到了被攻擊對(duì)象的sessionid就可以以被攻擊對(duì)象的身份合法登錄,而20分鐘的默認(rèn)保留值,也使得攻擊者即使在被攻擊對(duì)象關(guān)閉瀏覽器后依然有一定的時(shí)間成功登錄。當(dāng)前利用此原理進(jìn)行攻擊的常用手法是利用網(wǎng)站本身的xss漏洞或者是誘騙被攻擊者點(diǎn)擊相應(yīng)鏈接,以使其隱蔽訪問攻擊者事先假設(shè)好的網(wǎng)站并執(zhí)行惡意代碼,獲取被攻擊者的cookies信息從而得到sessionid.最后用可以修改sessionid的瀏覽器或其它可以提交數(shù)據(jù)的工具偽裝成被攻擊者的id合法登錄。防范措施此類攻擊過程較為隱蔽,但也有其局限性。因?yàn)閟ession本身有時(shí)間限制,特別是用戶在關(guān)閉瀏覽器后,留給攻擊者的時(shí)間也只有20分鐘。另外,在觸發(fā)機(jī)制上,盜竊cookies代碼的執(zhí)行必須是用戶自己觸發(fā),也就是說.用戶什么時(shí)候觸發(fā)代碼,攻擊者是不知道的,從用戶觸發(fā)惡意代碼到session失效,攻擊者只有很短的時(shí)間進(jìn)行非法活動(dòng)。所以,要對(duì)此類攻擊進(jìn)行防范,客戶端本身應(yīng)對(duì)陌生人給出的超級(jí)鏈接保持警惕,特別是對(duì)比較長(zhǎng)的超鏈接更要小心。每次登錄網(wǎng)站后應(yīng)該及時(shí)利用網(wǎng)站的退出功能退出和清除本機(jī)的cookies.另外登錄密碼的設(shè)置不要過于簡(jiǎn)單,盡量使用字母與數(shù)字組合,密碼長(zhǎng)度應(yīng)該在8位以上。網(wǎng)站管理員在開發(fā)網(wǎng)站時(shí)要注意檢查網(wǎng)站的xss漏洞,要注意session有效期的設(shè)置,一般不要把有效期設(shè)置太長(zhǎng),這樣即使真的被攻擊也能讓其非法活動(dòng)時(shí)間大大縮短。直接對(duì)服務(wù)器端的欺騙攻擊攻擊原理與客戶端欺騙不同,此類攻擊是對(duì)服務(wù)器端的直接欺騙。網(wǎng)站開發(fā)者在管理員管理頁面通常都會(huì)有session驗(yàn)證,目的是為了驗(yàn)證當(dāng)前登錄者是否為合法用戶。但如果攻擊者能夠在登錄管理頁面前,使用某種手段使得session("admin")被賦值(不一定是網(wǎng)站開發(fā)者所賦予的值)則驗(yàn)證代碼則無法攔截此類非法登錄。從而達(dá)到了直接欺騙服務(wù)器而以管理員身份直接登錄的目的。當(dāng)前利用此原理進(jìn)行攻擊的常用手法是都是在取得了某網(wǎng)站域名下的某個(gè)webshell進(jìn)行的。如許多免費(fèi)空間網(wǎng)站都會(huì)在主域名下允許用戶有自己的二級(jí)域名,而此域名的目錄又和網(wǎng)站主目錄在同一站點(diǎn)下,這樣就為欺騙攻擊提供了條件。而其它一些網(wǎng)站由于自身的XSS等漏洞,使得用戶拿下某個(gè)webshell,從而也使欺騙攻擊成為了可能。在具備了欺騙必備條件后,攻擊者還必須知道session驗(yàn)證的源碼,從而才能編寫惡意代碼繞過系統(tǒng)原有的驗(yàn)證。當(dāng)然,如果驗(yàn)證源碼是上文所列的情況,則攻擊者只需知道session所用變量即可,因?yàn)槠洳]有給出具體的賦值,只是簡(jiǎn)單的驗(yàn)證是否為空。攻擊者只要賦任意值即可通過此驗(yàn)證。防范措施此類攻擊手法也相當(dāng)隱蔽,危害極大。因?yàn)楣粢坏┏晒?,則攻擊者即可以管理員身份非法登錄。從此類欺騙攻擊的原理我們知道,此攻擊要成功必須具備多個(gè)先決條件:獲得該域名下的一個(gè)webshell或者攻擊網(wǎng)站與被欺騙網(wǎng)站在同一主站的同一目錄下;被攻擊主站采取了session驗(yàn)證管理頁面;獲得被攻擊站點(diǎn)的session驗(yàn)證源碼;知道被攻擊主站的管理頁面地址。所以我們要防范此類攻擊,就只能從幾個(gè)限制條件考慮。網(wǎng)站開發(fā)者應(yīng)該盡量避免各種漏洞,站點(diǎn)在使用前應(yīng)該經(jīng)過周密而詳盡的測(cè)試,從而降低被發(fā)現(xiàn)漏洞的可能。對(duì)于網(wǎng)站源碼不能輕易泄露,特別是在公開場(chǎng)合。如果是使用公開源碼假設(shè)的網(wǎng)站,更要把源碼關(guān)鍵部位更改。本攻擊欺騙的關(guān)鍵源碼部位即session驗(yàn)證源碼。Session漏洞檢測(cè)方法(1)Session互竄Session互竄即是用戶A的操作被用戶B執(zhí)行了。驗(yàn)證Session互竄,其原理還是基于權(quán)限控制,如某筆訂單只能是A進(jìn)行操作,或者只能是A才能看到的頁面,但是B的session竄進(jìn)來卻能夠獲得A的訂單詳情等。Session互竄方法:多TAB瀏覽器,在兩個(gè)TAB頁中都保留的是用戶A的session記錄然后在其中一個(gè)TAB頁執(zhí)行退出操作,登陸用戶B,此時(shí)兩個(gè)TAB頁都是B的session,然后在另一個(gè)A的頁面執(zhí)行操作,查看是否能成功。預(yù)期結(jié)果:有權(quán)限控制的操作,B不能執(zhí)行A頁面的操作,應(yīng)該報(bào)錯(cuò),沒有權(quán)限控制的操作,B執(zhí)行了A頁面操作后,數(shù)據(jù)記錄是B的而不是A的。Session超時(shí)基于Session原理,需要驗(yàn)證系統(tǒng)session是否有超時(shí)機(jī)制,還需要驗(yàn)證session超時(shí)后功能是否還能繼續(xù)走下去。測(cè)試方法:1、 打開一個(gè)頁面,等著10分鐘session超時(shí)時(shí)間到了,然后對(duì)頁面進(jìn)行操作,查看效果。2、 多TAB瀏覽器,在兩個(gè)TAB頁中都保留的是用戶A的session記錄,然后在其中—個(gè)TAB頁執(zhí)行退出操作,馬上在另外一個(gè)頁面進(jìn)行要驗(yàn)證的操作,查看是能繼續(xù)到下一步還是到登錄頁面。Session測(cè)試主要檢查Web應(yīng)用系統(tǒng)是否有超時(shí)的限制,也就是檢查用戶登錄后在一定時(shí)間內(nèi)沒有點(diǎn)擊任何頁面,是否需要重新登錄才能正常使用?檢查超時(shí)后能否自動(dòng)退出,退出之后,瀏覽器回退按鈕是否可以回到登錄頁面。Session測(cè)試一般使用手工測(cè)試和工具測(cè)試相結(jié)合的方法,若發(fā)現(xiàn)問題.應(yīng)及時(shí)修改代碼??缇W(wǎng)站腳本(XSS)漏洞測(cè)試跨網(wǎng)站腳本(XSS)漏洞實(shí)現(xiàn)原理跨站腳本漏洞(CrossSiteScripting,常簡(jiǎn)寫作XSS)是Web應(yīng)用程序在將數(shù)據(jù)輸出到網(wǎng)頁的時(shí)候存在問題,導(dǎo)致攻擊者可以將構(gòu)造的惡意數(shù)據(jù)顯示在頁面的漏洞。因?yàn)榭缯灸_本攻擊都是向網(wǎng)頁內(nèi)容中寫入一段惡意的腳本或者HTML代碼,故跨站腳本漏洞也被叫做HTML注入漏洞(HTMLInjection)。與SQL注入攻擊數(shù)據(jù)庫服務(wù)器的方式不同,跨站腳本漏洞是在客戶端發(fā)動(dòng)造成攻擊,也就是說,利用跨站腳本漏洞注入的惡意代碼是在用戶電腦上的瀏覽器中運(yùn)行的??缇W(wǎng)站腳本(XSS)漏洞防范措施下列規(guī)則旨在防止所有發(fā)生在應(yīng)用程序的XSS攻擊,雖然這些規(guī)則不允許任意向HTML文檔放入不可信數(shù)據(jù),不過基本上也涵蓋了絕大多數(shù)常見的情況。你不需要采用所有規(guī)則,很多企業(yè)可能會(huì)發(fā)現(xiàn)第一條和第二條就已經(jīng)足以滿足需求了。請(qǐng)根據(jù)自己的需求選擇規(guī)則。(1) 不要在允許位置插入不可信數(shù)據(jù)第一條規(guī)則就是拒絕所有數(shù)據(jù),不要將不可信數(shù)據(jù)放入HTML文檔,除非是下列定義的插槽。這樣做的理由是在理列有解碼規(guī)則的HTML中有很多奇怪的context.讓事情變得很復(fù)雜,因此沒有理由將不可信數(shù)據(jù)放在這些context中。(2) 在向HTML元素內(nèi)容插入不可信數(shù)據(jù)前對(duì)HTML解碼這條規(guī)則適用于當(dāng)你想把不可信數(shù)據(jù)直接插入HTML正文某處時(shí),這包括內(nèi)部正常標(biāo)簽(div、p、b、td等)。大多數(shù)網(wǎng)站框架都有HTML解碼的方法且能夠躲開下列字符。但是,這對(duì)于其他HTMLcontext是遠(yuǎn)遠(yuǎn)不夠的,你需要部署其他規(guī)則。(3) 在向HTML常見屬性插入不可信數(shù)據(jù)前進(jìn)行屬性解碼這條規(guī)則是將不可信數(shù)據(jù)轉(zhuǎn)化為典型屬性值(如寬度、名稱、值等),這不能用于復(fù)雜屬性(如href,src、style或者其他事件處理程序)。這是及其重要的規(guī)則,事件處理器屬性(為HTMLJavaScriptDataValues)必須遵守該規(guī)貝ij??缇W(wǎng)站腳本(XSS)漏洞測(cè)試方法對(duì)于呈增長(zhǎng)趨勢(shì)的跨站腳本(XSS)攻擊,可使用內(nèi)嵌檢測(cè)的方式進(jìn)行處理。使用Weblnspect工具識(shí)別所有的假造參數(shù),使用Devlnspect工具通過特定代碼關(guān)聯(lián)在頁面上發(fā)現(xiàn)安全缺陷,對(duì)于顯示代碼,采用CSEHTMLValidatorI具進(jìn)行測(cè)試。若在檢測(cè)中發(fā)現(xiàn)系統(tǒng)存在跨站腳本(XSS)漏洞,使用輸出數(shù)據(jù)編碼也就是將任何數(shù)據(jù)返回給用戶前均采用HTML編碼,可以有效防止跨站點(diǎn)腳本攻擊。因?yàn)橥ㄟ^HTML編碼,可將大多數(shù)腳本命令自動(dòng)轉(zhuǎn)換為無害文本。命令注射漏洞測(cè)試命令注射漏洞測(cè)試主要檢查所有調(diào)用外部資源(例如system、exec、fork,或者所有的發(fā)出請(qǐng)求的語法的源代碼,查找那些來自于HTTP請(qǐng)求的輸入可能發(fā)起調(diào)用的所有地方。使用相同功能的專門的庫函數(shù)來代替shell命令和一些系統(tǒng)調(diào)用,可以抵御命令注射的攻擊,另外一種避免命令注射的保護(hù)措施就是確保Web應(yīng)用程序只是根據(jù)它所要執(zhí)行某個(gè)功能時(shí)所需的最小權(quán)限來實(shí)現(xiàn)這個(gè)功能。如果必須使用外部命令的話,任何被插入命令的用戶信息必須仔細(xì)地審查,設(shè)立一定的機(jī)制來處理可能出現(xiàn)的錯(cuò)i吳、超時(shí)、或者在調(diào)用過程中出現(xiàn)的阻塞。日志文件測(cè)試曰志文件測(cè)試主要檢查Web運(yùn)行的相關(guān)信息是否寫進(jìn)了日志文件、是否可追蹤,是否記錄了系統(tǒng)運(yùn)行中發(fā)生的所有錯(cuò)誤,是否記錄了用戶的詳細(xì)信息,包括用戶的瀏覽器、用戶停留的時(shí)間、用戶IP等。記錄了用戶的IP,就能通過追捕查出用戶的具體地點(diǎn)。錯(cuò)誤作為曰志保留下來,可供技術(shù)人員分析錯(cuò)i吳是由系統(tǒng)實(shí)現(xiàn)漏洞引起的還是由于黑客攻擊引起的。訪問控制策略測(cè)試訪問控制策略是網(wǎng)絡(luò)安全防范和保護(hù)的主要策略,其任務(wù)是保證網(wǎng)絡(luò)資源不被非法使用和非法訪問。各種網(wǎng)絡(luò)安全策略必須相互配合才能真正起到保護(hù)作用,而訪問控制是保證網(wǎng)絡(luò)安全最重要的核心策略之一。訪問控制策略包括入網(wǎng)訪問控制策略、操作權(quán)限控制策略、目錄安全控制策略、屬性安全控制策略、網(wǎng)絡(luò)服務(wù)器安全控制策略、網(wǎng)絡(luò)監(jiān)測(cè)、鎖定控制策略

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論