1祖灰、針對Web的攻擊技術(shù)
簡單的HTTP協(xié)議本身并不存在安全性問題钟沛,因此協(xié)議本身幾乎不會稱為攻擊的目標。應(yīng)用HTTP協(xié)議的服務(wù)器和客戶端夫植,以及運行在服務(wù)器上的Web應(yīng)用等資源才是攻擊目標讹剔。目前油讯,來自互聯(lián)網(wǎng)的攻擊大多是沖著Web站點來的,他們大多把Web應(yīng)用作為攻擊目標延欠。
1.1陌兑、與最初的設(shè)計相比,現(xiàn)今的Web網(wǎng)站應(yīng)用的HTTP協(xié)議的使用方式已發(fā)生了翻天覆地的變化由捎。幾乎現(xiàn)今所有的Web網(wǎng)站都會使用會話(session)管理兔综、加密處理等安全性方面的功能,而HTTP協(xié)議內(nèi)并不具備這些功能狞玛。從整體看软驰,HTTP就是一個通用的單純協(xié)議機制。因此它具備較多優(yōu)勢心肪,但是在安全性方面則呈劣勢锭亏。就拿遠程登錄時會用到的SSH協(xié)議來說,SSH具備協(xié)議級別的認證及繪畫管理等功能硬鞍,HTTP協(xié)議則沒有慧瘤。另外在架設(shè)SSH服務(wù)方面,任何人都可以輕易地創(chuàng)建安全等級高的服務(wù)固该,而HTTP即使已架設(shè)好服務(wù)器锅减,但若想提供服務(wù)器基礎(chǔ)上的Web應(yīng)用,很多情況下都需要重新開發(fā)伐坏。因此怔匣,開發(fā)者需要自行設(shè)計并開發(fā)認證及會話管理功能來滿足Web應(yīng)用的安全。而自行設(shè)計就意味著會出現(xiàn)各種形形色色的問題桦沉。結(jié)果每瞒,安全等級并不完備,可仍在運作的Web應(yīng)用背后卻隱藏著各種容易被攻擊者濫用的安全漏洞的Bug永部。
1.2独泞、在客戶端即可篡改請求
在Web應(yīng)用中呐矾,從瀏覽器接收到的HTTP請求的全部內(nèi)容苔埋,都可以在客戶端自由地變更、篡改蜒犯。所以Web應(yīng)用可能會接收到與預(yù)期數(shù)據(jù)不相同的內(nèi)容组橄。在HTTP請求報文內(nèi)加載攻擊代碼,就能發(fā)起對Web應(yīng)用的攻擊罚随。通過URL查詢字段或表單玉工、HTTP首部、Cookie等途徑把攻擊代碼傳入淘菩,若這是Web應(yīng)用存在安全漏洞遵班,那內(nèi)部信息就會遭到竊取屠升,或被攻擊者拿到管理權(quán)限。
1.3狭郑、針對Web應(yīng)用的攻擊模式
主動攻擊
被動攻擊
以服務(wù)器為目標的主動攻擊:攻擊者通過直接訪問Web應(yīng)用腹暖,把攻擊代碼傳入的攻擊模式。
以服務(wù)器為目標的被動攻擊:利用圈套策略執(zhí)行攻擊diamanté的攻擊模式翰萨。
2脏答、因輸出值轉(zhuǎn)義不完全引發(fā)的安全漏洞
實施Web應(yīng)用的安全對策可大致分為以下兩部分
客戶端的驗證
Web應(yīng)用端的驗證:輸入值驗證、輸出值轉(zhuǎn)義
多數(shù)情況下采用JavaScript在客戶端驗證數(shù)據(jù)亩鬼≈掣妫可是在客戶端允許篡改數(shù)據(jù)或關(guān)閉JavaScript,不適合將JavaScript驗證作為安全的防范對策雳锋。保留客戶端驗證只是為了盡早地辨識輸入錯誤黄绩,起到提高UI體驗的作用。
Web應(yīng)用端的輸入值驗證按Web應(yīng)用內(nèi)的處理則有可能被誤認為是具有攻擊性意義的代碼玷过。輸入值驗證通常是指檢查是否是符合系統(tǒng)業(yè)務(wù)邏輯的數(shù)值或檢查字符編碼等預(yù)防對策宝与。
從數(shù)據(jù)庫或文件系統(tǒng)、HTML冶匹、郵件等輸入Web應(yīng)用處理的數(shù)據(jù)之際习劫,針對輸出做值轉(zhuǎn)義處理是一項至關(guān)重要的安全策略。當(dāng)輸出值轉(zhuǎn)義不完全時嚼隘,會因觸發(fā)攻擊者傳入的攻擊代碼诽里,而給輸出對象帶來損害。
2.1飞蛹、跨站腳本攻擊:通過存在的安全漏洞的Web網(wǎng)站注冊用戶的瀏覽器內(nèi)運行非法的HTML標簽或Javascript進行的一種攻擊谤狡。跨站腳本攻擊有可能造成以下影響:
利用虛假輸入表單騙取用戶個人信息
利用腳本竊取用戶的Cookie值卧檐,被害者在不知情的情況下墓懂,幫助攻擊者發(fā)送惡意請求。
顯示偽造的文章或圖片
2.2霉囚、SQL注入攻擊:針對Web應(yīng)用使用的數(shù)據(jù)庫捕仔,通過運行非法的SQL而產(chǎn)生的攻擊。該安全隱患有可能引發(fā)極大的威脅盈罐,有時會直接導(dǎo)致個人信息及機密信息的泄露榜跌。
2.3、OS命令注入攻擊:通過Web應(yīng)用盅粪,執(zhí)行非法的操作系統(tǒng)命令達到攻擊的目的钓葫。只要在調(diào)用Shell函數(shù)的地方就有存在被攻擊的風(fēng)險。
2.4票顾、HTTP首部注入發(fā)送:攻擊者通過在響應(yīng)首部字段內(nèi)插入換行础浮,添加任意響應(yīng)首部或主體的一種攻擊帆调。屬于別動攻擊模式。
2.5豆同、郵件首部注入攻擊:Web應(yīng)用中的郵件發(fā)送功能贷帮,攻擊者通過向郵件首部To或Subject內(nèi)任意添加非法內(nèi)容發(fā)起的攻擊。
2.6诱告、目錄遍歷攻擊:指對本無意公開的文件目錄撵枢,通過非法截斷其目錄路徑后,達成訪問目的的一種攻擊精居。這種攻擊有時也稱為路徑遍歷攻擊锄禽。
2.7、遠程文件包含漏洞:當(dāng)部分腳本內(nèi)容需要從其他文件讀入時靴姿,攻擊者利用指定外部服務(wù)器的URL充當(dāng)依賴文件沃但,讓腳本讀取之后,就可運行任意腳本的一種攻擊佛吓。
3宵晚、因設(shè)置或設(shè)計上的缺陷引發(fā)的安全漏洞
3.1、強制瀏覽
強制瀏覽安全漏洞是指维雇,從安置在Web服務(wù)器的公開目錄下的文件中淤刃,瀏覽那些原本非自愿公開的文件。強制瀏覽有可能造成以下影響:
泄露顧客的個人信息等重要情報
泄露原本需要具有訪問權(quán)限的用戶才可查閱的信息內(nèi)容
泄露未外連到外界的文件
3.2吱型、不正確的錯誤消息處理
不正確的錯誤消息處理的安全漏洞是指逸贾,Web應(yīng)用的錯誤信息內(nèi)包含對攻擊者有用的信息。與Web應(yīng)用有關(guān)的主要錯誤信息如下所示津滞。
Web應(yīng)用拋出的錯誤消息
數(shù)據(jù)庫等系統(tǒng)拋出的錯誤消息
3.3铝侵、開放重定向
開放重定向是一種對指定的任意URL作重定向跳轉(zhuǎn)的功能。而于此功能相關(guān)聯(lián)的安全漏洞是指触徐,假如指定的重定向URL到某個具有惡意的Web網(wǎng)站咪鲜,那么用戶就會被誘導(dǎo)至那個Web網(wǎng)站。
4撞鹉、因會話管理疏忽引發(fā)的安全漏洞
會話管理是用來管理用戶狀態(tài)的必備功能疟丙,但是如果在會話管理上有所疏忽,就會導(dǎo)致用戶的認證狀態(tài)被竊取等后果孔祸。
4.1隆敢、會話劫持:是指攻擊者通過某種手段拿到了用戶的會話ID发皿,并非法使用此會話ID偽裝成用戶崔慧,達到攻擊的目的。
4.2穴墅、會話固定攻擊:對以竊取目標會話ID為主動攻擊手段的會話唄劫持而言惶室,會話固定攻擊(Session Fixatone)攻擊會強制用戶使用攻擊者指定的會話ID温自,屬于被動攻擊。
4.3皇钞、跨站點請求攻擊:跨站點請求偽造攻擊是指攻擊者通過設(shè)置好的陷阱悼泌,強制對已完成認證的用戶進行非預(yù)期的個人信息或設(shè)定信息等某些狀態(tài)更新,屬于被動攻擊夹界。
5馆里、其他安全漏洞
5.1、密碼破解:密碼破解攻擊即算出密碼可柿,突破認證鸠踪。攻擊不僅限于Web應(yīng)用,還包括其他的系統(tǒng)(如FTP或SSH等)复斥。密碼破解有兩種手段:通過網(wǎng)絡(luò)的密碼試錯营密、對已加密密碼的破解。
5.2目锭、點擊劫持:指利用透明的按鈕或鏈接做成陷阱评汰,覆蓋在Web頁面之上。然后誘使用戶在不知情的情況下痢虹,點擊那個鏈接訪問內(nèi)容的一種攻擊手段被去,這種行為稱為界面?zhèn)窝b。
5.3奖唯、Dos攻擊:是一種讓運行中的服務(wù)呈停止?fàn)顟B(tài)的攻擊编振。有時也叫做服務(wù)停止攻擊或拒絕服務(wù)攻擊。Dos攻擊的對象不僅限于Web網(wǎng)站臭埋,還包括網(wǎng)絡(luò)設(shè)備及服務(wù)器等踪央。主要有以下兩種方式:集中利用訪問請求造成資源過載,資源用盡的通知瓢阴,實際上服務(wù)也呈停止?fàn)顟B(tài)畅蹂。通過攻擊安全漏洞使服務(wù)停止;通過攻擊安全漏洞使服務(wù)停止荣恐。
5.4液斜、后門程序:指開發(fā)設(shè)置的隱藏入口,可不安正常步驟使用受限功能叠穆。利用后門程序就能夠使用原本受限制的功能少漆。通常后三種類型:開發(fā)階段作為Debug調(diào)用的后門程序;開發(fā)者為了自身利益植入的后門程序硼被;攻擊者通過某種方法設(shè)置的后門程序