web常見漏洞的成因和修復(fù)
?
是你的小涼涼呀
簡書作者
0.0762020-04-02 18:04?打開App
1.SQL注入
漏洞描述:
SQL注入攻擊( SQL Injection),簡稱注入攻擊、SQL注入,主要用
于非法獲取網(wǎng)站控制權(quán),是發(fā)生在應(yīng)用程序的數(shù)據(jù)庫層上的安全漏洞。在設(shè)計程序時,
忽略了對輸入字符串中夾帶的SQL指令的檢查,被數(shù)據(jù)庫誤認(rèn)為是正常的SQL指
令而運行,從而使數(shù)據(jù)庫受到攻擊,可能導(dǎo)致數(shù)據(jù)被竊取、更改、刪除,以及進(jìn)一
步導(dǎo)致網(wǎng)站被嵌入惡意代碼、被植入后門程序等危害。
通常情況下, SQL注入的位置包括:
?。?)表單提交,主要是POST請求,也包括GET請求;
(2)URL參數(shù)提交,主要為GET請求參數(shù);
?。?)Cookie參數(shù)提交;
(4)HTTP請求頭部的一些可修改的值,比如Referer、User_Agent等;
(5)一些邊緣的輸入點,比如.mp3文件的一些文件信息等。
造成的危害:
SQL注入的危害不僅體現(xiàn)在數(shù)據(jù)庫層面上,還有可能危及承載數(shù)據(jù)庫的操
作系統(tǒng);如果SQL注入被用來掛馬,還可能用來傳播惡意軟件等,這些危害包括但
不局限于:
(1)數(shù)據(jù)庫信息泄漏:數(shù)據(jù)庫中存放的用戶的隱私信息的泄露。作為數(shù)據(jù)
的存儲中心,數(shù)據(jù)庫里往往保存著各類的隱私信息, SQL注入攻擊能導(dǎo)致這些隱私
信息透明于攻擊者。
(2)網(wǎng)頁篡改:通過操作數(shù)據(jù)庫對特定網(wǎng)頁進(jìn)行篡改。
?。?)網(wǎng)站被掛馬,傳播惡意軟件:修改數(shù)據(jù)庫一些字段的值,嵌入網(wǎng)馬鏈
接,進(jìn)行掛馬攻擊。
(4)數(shù)據(jù)庫被惡意操作:數(shù)據(jù)庫服務(wù)器被攻擊,數(shù)據(jù)庫的系統(tǒng)管理員帳戶
被篡改。
?。?)服務(wù)器被遠(yuǎn)程控制,被安裝后門。經(jīng)由數(shù)據(jù)庫服務(wù)器提供的操作系統(tǒng)
支持,讓黑客得以修改或控制操作系統(tǒng)。
?。?)破壞硬盤數(shù)據(jù),癱瘓全系統(tǒng)。
修復(fù)建議:
解決SQL注入問題的關(guān)鍵是對所有可能來自用戶輸入的數(shù)據(jù)進(jìn)行嚴(yán)格的
檢查、對數(shù)據(jù)庫配置使用最小權(quán)限原則。通常使用的方案有:
?。?)所有的查詢語句都使用數(shù)據(jù)庫提供的參數(shù)化查詢接口,參數(shù)化的語
句使用參數(shù)而不是將用戶輸入變量嵌入到SQL語句中。當(dāng)前幾乎所有的數(shù)據(jù)庫系統(tǒng)
都提供了參數(shù)化SQL語句執(zhí)行接口,使用此接口可以非常有效的防止SQL注入攻
擊。
(2)對進(jìn)入數(shù)據(jù)庫的特殊字符('“<>&*;等)進(jìn)行轉(zhuǎn)義處理,或編碼轉(zhuǎn)
換。
?。?)確認(rèn)每種數(shù)據(jù)的類型,比如數(shù)字型的數(shù)據(jù)就必須是數(shù)字,數(shù)據(jù)庫中
的存儲字段必須對應(yīng)為int型。
(4)數(shù)據(jù)長度應(yīng)該嚴(yán)格規(guī)定,能在一定程度上防止比較長的SQL注入語
句無法正確執(zhí)行。
?。?)網(wǎng)站每個數(shù)據(jù)層的編碼統(tǒng)一,建議全部使用UTF-8編碼,上下層
編碼不一致有可能導(dǎo)致一些過濾模型被繞過。
?。?)嚴(yán)格限制網(wǎng)站用戶的數(shù)據(jù)庫的操作權(quán)限,給此用戶提供僅僅能夠滿
足其工作的權(quán)限,從而最大限度的減少注入攻擊對數(shù)據(jù)庫的危害。
?。?)避免網(wǎng)站顯示SQL錯誤信息,比如類型錯誤、字段不匹配等,防
止攻擊者利用這些錯誤信息進(jìn)行一些判斷。
?。?)在網(wǎng)站發(fā)布之前建議使用一些專業(yè)的SQL注入檢測工具進(jìn)行檢測,
及時修補這些SQL注入漏洞。
?。?)過濾危險字符,例如:采用正則表達(dá)式匹配union、sleep、and、select、
load_file等關(guān)鍵字,如果匹配到則終止運行。
2.跨站腳本漏洞(XSS)
漏洞描述:
跨站腳本攻擊( Cross-site scripting,通常簡稱為XSS)發(fā)生在客戶端,可被用于進(jìn)行竊取隱私、釣魚欺騙、誘導(dǎo)用戶再次登錄,然后獲取其登錄憑證、傳播惡意代碼等攻擊。
XSS攻擊使用到的技術(shù)主要為HTML和Javascript,也包括VBScript
和ActionScript等。XSS攻擊對WEB服務(wù)器雖無直接危害,但是它借助網(wǎng)站進(jìn)行
傳播,使網(wǎng)站的使用用戶受到攻擊,導(dǎo)致網(wǎng)站用戶帳號被竊取,從而對網(wǎng)站也產(chǎn)生
了較嚴(yán)重的危害。
XSS類型:
?。?)非持久型跨站:即反射型跨站腳本漏洞,是目前最普遍的跨站類型。
非持久型xss攻擊是一次性的,僅對當(dāng)次的頁面訪問產(chǎn)生影響。非持久型xss攻擊
要求用戶訪問一個被攻擊者篡改后的鏈接,用戶訪問該鏈接時,被植入的攻擊腳
本被用戶游覽器執(zhí)行,從而達(dá)到攻擊目的。跨站代碼一般存在于鏈接中,請求這
樣的鏈接時,跨站代碼經(jīng)過服務(wù)端反射回來,這類跨站的代碼不存儲到服務(wù)端
(比如數(shù)據(jù)庫中)。
?。?)持久型跨站:持久型xss,會把攻擊者的數(shù)據(jù)存儲在服務(wù)器端,攻擊行為將伴
隨著攻擊數(shù)據(jù)一直存在,這是危害最直接的跨站類型,跨站代碼存儲于服務(wù)端
(比如數(shù)據(jù)庫中)。常見情況是某用戶在論壇發(fā)貼,如果論壇沒有過濾用戶輸入的
Javascript代碼數(shù)據(jù),就會導(dǎo)致其他瀏覽此貼的用戶的瀏覽器會執(zhí)行發(fā)貼人所嵌入
的Javascript代碼。
?。?)DOM跨站(DOM XSS):不經(jīng)過后端,是通過url傳入?yún)?shù)去控制觸發(fā)的,
是一種發(fā)生在客戶端DOM(DocumentObject Model文檔對象模型)中的跨站漏
洞,很大原因是因為客戶端腳本處理邏輯導(dǎo)致的安全問題。
造成的危害:
?。?)釣魚欺騙:最典型的就是利用目標(biāo)網(wǎng)站的反射型跨站腳本漏洞將目
標(biāo)網(wǎng)站重定向到釣魚網(wǎng)站,或者注入釣魚JavaScript以監(jiān)控目標(biāo)網(wǎng)站的表單輸入,
甚至發(fā)起基于DHTML更高級的釣魚攻擊方式。
?。?)網(wǎng)站掛馬:跨站時利用IFrame嵌入隱藏的惡意網(wǎng)站或者將被攻擊
者定向到惡意網(wǎng)站上,或者彈出惡意網(wǎng)站窗口等方式都可以進(jìn)行掛馬攻擊。
(3)身份盜用: Cookie是用戶對于特定網(wǎng)站的身份驗證標(biāo)志, XSS可
以盜取到用戶的Cookie,從而利用該Cookie盜取用戶對該網(wǎng)站的操作權(quán)限。如果
一個網(wǎng)站管理員用戶Cookie被竊取,將會對網(wǎng)站引發(fā)巨大的危害。
?。?)盜取網(wǎng)站用戶信息:當(dāng)能夠竊取到用戶Cookie從而獲取到用戶身
份使,攻擊者可以獲取到用戶對網(wǎng)站的操作權(quán)限,從而查看用戶隱私信息。
?。?)垃圾信息發(fā)送:比如在SNS社區(qū)中,利用XSS漏洞借用被攻擊者
的身份發(fā)送大量的垃圾信息給特定的目標(biāo)群。
?。?)劫持用戶Web行為:一些高級的XSS攻擊甚至可以劫持用戶的
Web行為,監(jiān)視用戶的瀏覽歷史,發(fā)送與接收的數(shù)據(jù)等等。
(7)XSS蠕蟲:XSS蠕蟲可以用來打廣告、刷流量、掛馬、惡作劇、破
壞網(wǎng)上數(shù)據(jù)、實施DDoS攻擊等。
修復(fù)建議:
xss漏洞本質(zhì)上是一種html注入,也就是將html代碼注入到網(wǎng)頁中。那么其防
御的根本就是在將用戶提交的代碼顯示到頁面上時做好一系列的過濾與轉(zhuǎn)義。
?。?)與SQL注入防護(hù)的建議一樣,假定所有輸入都是可疑的,必須對
所有輸入中的“‘”,““”,”<“,”>“,” on*“,script、iframe等字樣進(jìn)行嚴(yán)格的
檢查。這里的輸入不僅僅是用戶可以直接交互的輸入接口,也包括HTTP請求中
的Cookie中的變量, HTTP請求頭部中的變量等。
?。?)不僅要驗證數(shù)據(jù)的類型,還要驗證其格式、長度、范圍和內(nèi)容。
?。?)不要僅僅在客戶端做數(shù)據(jù)的驗證與過濾,關(guān)鍵的過濾步驟在服務(wù)端
進(jìn)行。
?。?4)對輸出的數(shù)據(jù)也要檢查,數(shù)據(jù)庫里的值有可能會在一個大網(wǎng)站的多
處都有輸出,即使在輸入做了編碼等操作,在各處的輸出點時也要進(jìn)行安全檢查。
?。?)在發(fā)布應(yīng)用程序之前測試所有已知的威脅。
3.跨站請求偽造(CSRF)
漏洞描述:
CSRF是跨站請求偽造,不攻擊網(wǎng)站服務(wù)器,而是冒充用戶在站內(nèi)的正常操作。通常由于服務(wù)端沒有對請求頭做嚴(yán)格過濾引起的。CSRF會造成密碼重置,用戶偽造等問題,可能引發(fā)嚴(yán)重后果。絕大多數(shù)網(wǎng)站是通過 cookie等方式辨識用戶身份,再予以授權(quán)的。所以要偽造用戶的正常操作,最好的方法是通過 XSS或鏈接欺騙等途徑,讓用戶在本機(即擁有身份 cookie的瀏覽器端)發(fā)起用戶所不知道的請求。CSRF攻擊會令用戶在不知情的情況下攻擊自己已經(jīng)登錄的系統(tǒng)。
修復(fù)建議:
(1)驗證請求的Referer是否來自本網(wǎng)站,但可被繞過。
(2)在請求中加入不可偽造的token,并在服務(wù)端驗證token是否一致或正確,不正確則丟棄拒絕服務(wù)。
4.服務(wù)器端請求偽造(SSRF)
漏洞描述:
SSRF(Server-Side Request Forgery,服務(wù)器端請求偽造):通俗的來說就是我們可以偽造服務(wù)器端發(fā)起的請求,從而獲取客戶端所不能得到的數(shù)據(jù)。SSRF漏洞形成的原因主要是服務(wù)器端所提供的接口中包含了所要請求的內(nèi)容的URL參數(shù),并且未對客戶端所傳輸過來的URL參數(shù)進(jìn)行過濾。
造成的危害:
(1)可以對外網(wǎng)、服務(wù)器所在內(nèi)網(wǎng)、本地進(jìn)行端口掃描,獲取一些服務(wù)的banner信息。
(2)攻擊運行在內(nèi)網(wǎng)或本地的應(yīng)用程序(比如溢出)。
(3)對內(nèi)網(wǎng)Web應(yīng)用進(jìn)行指紋識別,通過訪問默認(rèn)文件實現(xiàn)。
(4)攻擊內(nèi)外網(wǎng)的Web應(yīng)用,主要是使用Get參數(shù)就可以實現(xiàn)的攻擊(比如Struts2漏洞利用,SQL注入等)。
(5)利用File協(xié)議讀取本地文件。
修復(fù)建議:
(1)禁用不需要的協(xié)議,只允許HTTP和HTTPS請求,可以防止類似于file gopher ftp
(2)白名單的方式限制訪問的目標(biāo)地址,禁止對內(nèi)網(wǎng)發(fā)起請求。
(3)過濾或屏蔽請求返回的詳細(xì)信息,驗證遠(yuǎn)程服務(wù)器對請求的響應(yīng)是比較容易的方法。如果web應(yīng)用是去獲取某一種類型的文件。那么在把返回結(jié)果展示給用戶之前先驗證返回的信息是否符合標(biāo)準(zhǔn)。
(4)驗證請求的文件格式。
(5)禁止跳轉(zhuǎn)。
(6)限制請求的端口為http常用的端口,比如 80、443、8080、8000等。
(7)統(tǒng)一錯誤信息,避免用戶可以根據(jù)錯誤信息來判斷遠(yuǎn)端服務(wù)器的端口狀態(tài)。
5.弱口令漏洞
漏洞描述:
弱口令(weak password)沒有嚴(yán)格和準(zhǔn)確的定義,通常認(rèn)為容易被別
人(他們有可能對你很了解)猜測到或被破解工具破解的口令均為弱口令。
修復(fù)建議:
設(shè)置密碼通常遵循以下原則:
?。?)不使用空口令或系統(tǒng)缺省默認(rèn)的口令,這些口令眾所周之,為典型的弱
口令。
?。?)口令長度不小于8個字符。
(3)口令不應(yīng)該為連續(xù)的某個字符(例如: AAAAAAAA)或重復(fù)某些
字符的組合(例如: tzf.tzf.)。
(4)口令應(yīng)該為以下四類字符的組合,大寫字母(A-Z)、小寫字母(a-z)、
數(shù)字(0-9)和特殊字符。每類字符至少包含一個。如果某類字符只包含一個,那么
該字符不應(yīng)為首字符或尾字符。
?。?)口令中不應(yīng)包含本人、父母、子女和配偶的姓名和出生日期、紀(jì)念
日期、登錄名、E-mail地址等等與本人有關(guān)的信息,以及字典中的單詞。
?。?)口令不應(yīng)該為用數(shù)字或符號代替某些字母的單詞。
?。?)口令應(yīng)該易記且可以快速輸入,防止他人從你身后很容易看到你的
輸入。
?。?)至少90天內(nèi)更換一次口令,防止未被發(fā)現(xiàn)的入侵者繼續(xù)使用該口
令。
6.身份驗證和會話管理中斷
漏洞描述:
網(wǎng)站通常為每個有效會話創(chuàng)建會話cookie和會話ID,這些cookie包含敏感數(shù)據(jù),如用戶名,密碼等。當(dāng)會話通過注銷或瀏覽器突然關(guān)閉結(jié)束時,這些cookie應(yīng)該無效,即每個會話應(yīng)該有一個新的cookie。
如果cookie未失效,則敏感數(shù)據(jù)將存在于系統(tǒng)中。例如,使用公共計算機(Cyber Cafe)的用戶,易受攻擊的站點的cookie位于系統(tǒng)上并暴露給攻擊者。攻擊者在一段時間后使用相同的公共計算機,敏感數(shù)據(jù)會受到損害。
以同樣的方式,用戶使用公共計算機,而不是注銷,他突然關(guān)閉瀏覽器。攻擊者使用相同的系統(tǒng),當(dāng)瀏覽同一個易受攻擊的站點時,受害者的上一個會話將被打開。攻擊者可以通過竊取個人資料信息,信用卡信息等做任何他想做的事情。
應(yīng)該進(jìn)行檢查以找到身份驗證和會話管理的強度。密鑰,會話令牌,cookie應(yīng)該在不影響密碼的情況下正確實施。易受攻擊的對象包括:
?。?)在URL上公開的會話ID可能導(dǎo)致會話固定攻擊。
?。?)注銷和登錄前后的會話ID相同。
?。?)會話超時未正確實施。
?。?)應(yīng)用程序為每個新會話分配相同的會話ID。
?。?)應(yīng)用程序的經(jīng)過身份驗證的部分使用SSL進(jìn)行保護(hù),密碼以散列或加密格式存儲。
?。?)會話可由低權(quán)限用戶重用。
利用此漏洞,攻擊者可以劫持會話,對系統(tǒng)進(jìn)行未經(jīng)授權(quán)的訪問,從而允許泄露和修改未經(jīng)授權(quán)的信息。使用盜取的cookie或使用XSS的會話可以劫持會話。
修復(fù)建議:
應(yīng)根據(jù)OWASP應(yīng)用程序安全驗證標(biāo)準(zhǔn)定義所有身份驗證和會話管理要求。永遠(yuǎn)不要在URL或日志中公開任何憑據(jù)。還應(yīng)該做出很大的努力來避免可用于竊取會話ID的XSS漏洞。
7.不安全的直接對象引用
漏洞描述:
當(dāng)開發(fā)人員公開對內(nèi)部實現(xiàn)對象的引用(例如URL或FORM參數(shù)中的文件,目錄或數(shù)據(jù)庫鍵)時,就會發(fā)生這種情況。攻擊者可以使用此信息訪問其他對象,并可以創(chuàng)建將來的攻擊來訪問未經(jīng)授權(quán)的數(shù)據(jù)。
使用此漏洞,攻擊者可以訪問未經(jīng)授權(quán)的內(nèi)部對象,可以修改數(shù)據(jù)或破壞應(yīng)用程序。例:
更改以下URL中的“userid”可以使攻擊者查看其他用戶的信息。
攻擊者可以通過更改用戶標(biāo)識值來查看其他信息。
修復(fù)建議:
(1)實施訪問控制檢查。
(2)避免在URL中公開對象引用。
?。?)驗證對所有引用對象的授權(quán)。
8.HTTP報頭追蹤漏洞
漏洞描述:
目標(biāo)網(wǎng)站支持trace/track web服務(wù)器http連接方式調(diào)試功能。當(dāng)該調(diào)試功能開
啟時,包含敏感信息的http報頭可能被惡意人員追蹤截獲。惡意人員該漏洞,通過
構(gòu)造惡意script腳本追蹤http報頭,可能獲得http報頭中包含的敏感資訊,如cookie
或認(rèn)證證書等。
該漏洞往往與其它方式配合來進(jìn)行有效攻擊,由于HTTP TRACE請求可以通
過客戶瀏覽器腳本發(fā)起(如XMLHttpRequest),并可以通過DOM接口來訪問,
因此很容易被攻擊者利用。防御HTTP報頭追蹤漏洞的方法通常禁用HTTP TRACE
方法。
修復(fù)建議:
目標(biāo)的webserver支持trace和/或track方式。trace和track是用來調(diào)試web服務(wù)器
連接的http方式。若這些方式不是必須的,應(yīng)該禁用這些方式。
9.Struts2遠(yuǎn)程命令執(zhí)行漏洞
漏洞描述:
Apache Struts是一款建立Java web應(yīng)用程序的開放源代碼架構(gòu)。
Apache Struts存在一個輸入過濾錯誤,如果遇到轉(zhuǎn)換錯誤可被利用注入和執(zhí)行任
意Java代碼。網(wǎng)站存在遠(yuǎn)程代碼執(zhí)行漏洞的大部分原因是由于網(wǎng)站采用了Apache
Struts Xwork作為網(wǎng)站應(yīng)用框架,由于該軟件存在遠(yuǎn)程代碼執(zhí)高危漏洞,導(dǎo)致網(wǎng)站
面臨安全風(fēng)險。例如:“ GPS車載衛(wèi)星定位系統(tǒng)”網(wǎng)站存在遠(yuǎn)程命令執(zhí)行漏洞(CNV
D-2012-13934);Aspcms留言本遠(yuǎn)程代碼執(zhí)行漏洞( CNVD-2012-11590)等。
修復(fù)建議:
修復(fù)此類漏洞,只需到Apache官網(wǎng)升級Apache Struts到最新版本:
10.不安全的加密存儲
漏洞描述:
不安全的加密存儲是一種常見的漏洞,在敏感數(shù)據(jù)未安全存儲時存在。用戶憑據(jù),配置文件信息,健康詳細(xì)信息,信用卡信息等屬于網(wǎng)站上的敏感數(shù)據(jù)信息。該數(shù)據(jù)將存儲在應(yīng)用程序數(shù)據(jù)庫中。如果不使用加密或散列來不正確地存儲此數(shù)據(jù),則它將容易受到攻擊者的攻擊。
通過使用此漏洞,攻擊者可以竊取,修改此類受弱保護(hù)的數(shù)據(jù),以進(jìn)行身份盜用,信用卡欺詐或其他犯罪。例:
在其中一個銀行應(yīng)用程序中,密碼數(shù)據(jù)庫使用未加保留的哈希來存儲每個人的密碼。SQL注入漏洞允許攻擊者檢索密碼文件。所有未加鹽的哈希都可以在任何時候強行進(jìn)行,而鹽漬的密碼則需要數(shù)千年的時間。(無鹽哈希-鹽是附加到原始數(shù)據(jù)的隨機數(shù)據(jù)。在哈希之前將鹽附加到密碼)。
修復(fù)建議:
確保適當(dāng)?shù)膹姌?biāo)準(zhǔn)算法。不要創(chuàng)建自己的加密算法。僅使用經(jīng)過批準(zhǔn)的公共算法,如AES,RSA公鑰加密和SHA-256等。確保異地備份已加密,但密鑰是單獨管理和備份的。
11.無法限制URL訪問
漏洞描述:
Web應(yīng)用程序在呈現(xiàn)受保護(hù)的鏈接和按鈕之前檢查URL訪問權(quán)限每次訪問這些頁面時,應(yīng)用程序都需要執(zhí)行類似的訪問控制檢查。在大多數(shù)應(yīng)用程序中,特權(quán)頁面,位置和資源不會呈現(xiàn)給特權(quán)用戶。通過智能猜測,攻擊者可以訪問權(quán)限頁面。攻擊者可以訪問敏感頁面,調(diào)用函數(shù)和查看機密信息。
利用此漏洞攻擊者可以訪問未經(jīng)授權(quán)的URL,而無需登錄應(yīng)用程序并利用此漏洞。攻擊者可以訪問敏感頁面,調(diào)用函數(shù)和查看機密信息。網(wǎng)站極易受到攻擊,例:
攻擊者注意到URL表示角色為“/ user / getaccounts”。他修改為“/ admin / getaccounts”。攻擊者可以將角色附加到URL。
修復(fù)建議:
?。?)實施強大的訪問控制檢查。
?。?)身份驗證和授權(quán)策略應(yīng)基于角色。
?。?)限制對不需要的URL的訪問。
12.傳輸層保護(hù)不足
漏洞描述:
處理用戶(客戶端)和服務(wù)器(應(yīng)用程序)之間的信息交換。應(yīng)用程序經(jīng)常通過網(wǎng)絡(luò)傳輸敏感信息,如身份驗證詳細(xì)信息,信用卡信息和會話令牌。通過使用弱算法或使用過期或無效的證書或不使用SSL,可以允許將通信暴露給不受信任的用戶,這可能會危及Web應(yīng)用程序和/或竊取敏感信息。
利用此Web安全漏洞,攻擊者可以嗅探合法用戶的憑據(jù)并獲取對該應(yīng)用程序的訪問權(quán)限??梢愿`取信用卡信息。通過網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)容易被攻擊。
修復(fù)建議:
啟用安全HTTP并僅通過HTTPS強制執(zhí)行憑據(jù)傳輸。確保您的證書有效且未過期。例:不使用SSL的應(yīng)用程序,攻擊者只會監(jiān)視網(wǎng)絡(luò)流量并觀察經(jīng)過身份驗證的受害者會話cookie。攻擊者可以竊取該cookie并執(zhí)行Man-in-the-Middle攻擊。
13.未經(jīng)驗證的重定向和轉(zhuǎn)發(fā)
漏洞描述:
Web應(yīng)用程序使用很少的方法將用戶重定向并轉(zhuǎn)發(fā)到其他頁面以實現(xiàn)預(yù)期目的。如果在重定向到其他頁面時沒有正確的驗證,攻擊者可以利用此功能,并可以將受害者重定向到網(wǎng)絡(luò)釣魚或惡意軟件站點,或者使用轉(zhuǎn)發(fā)來訪問未經(jīng)授權(quán)的頁面。
攻擊者可以向用戶發(fā)送包含附加編碼惡意URL的真實URL的URL。用戶只需看到攻擊者發(fā)送的URL的真實部分就可以瀏覽它并可能成為受害者。例:
修復(fù)建議:
只需避免在應(yīng)用程序中使用重定向和轉(zhuǎn)發(fā)。如果使用,請不要在計算目的地時使用用戶參數(shù)。如果無法避免目標(biāo)參數(shù),請確保提供的值有效,并為用戶授權(quán)。
14.文件上傳漏洞
漏洞描述:
文件上傳漏洞通常由于網(wǎng)頁代碼中的文件上傳路徑變量過濾不嚴(yán)造成
的,如果文件上傳功能實現(xiàn)代碼沒有嚴(yán)格限制用戶上傳的文件后綴以及文件類型,
攻擊者可通過Web訪問的目錄上傳任意文件,包括網(wǎng)站后門文件( webshell),
進(jìn)而遠(yuǎn)程控制網(wǎng)站服務(wù)器。
修復(fù)建議:
嚴(yán)格限制和校驗上傳的文件,禁止上傳惡意代碼的文件。同時限制相關(guān)目錄
的執(zhí)行權(quán)限,防范webshell攻擊。
15.應(yīng)用程序測試腳本泄露
漏洞描述:
由于測試腳本對提交的參數(shù)數(shù)據(jù)缺少充分過濾,遠(yuǎn)程攻擊者可以利用洞以
WEB進(jìn)程權(quán)限在系統(tǒng)上查看任意文件內(nèi)容。
修復(fù)建議:
防御此類漏洞通常需嚴(yán)格過濾提交的數(shù)據(jù),有效檢測攻擊。
16.私有IP地址泄露漏洞
漏洞描述:
IP地址是網(wǎng)絡(luò)用戶的重要標(biāo)示,是攻擊者進(jìn)行攻擊前需要了解的。獲取的
方法較多,攻擊者也會因不同的網(wǎng)絡(luò)情況采取不同的方法,如:
?。?)在局域網(wǎng)內(nèi)使用Ping指令, Ping對方在網(wǎng)絡(luò)中的名稱而獲得IP。
?。?)在Internet上使用IP版的QQ,直接顯示。
?。?)截獲并分析對方的網(wǎng)絡(luò)數(shù)據(jù)包。攻擊者可以找到并直接通過軟件解析截獲
后的數(shù)據(jù)包的IP包頭信息,再根據(jù)這些信息了解具體的IP。
修復(fù)建議:
針對最有效的“數(shù)據(jù)包分析方法”而言,就可以安裝能夠自動去掉發(fā)送
數(shù)據(jù)包包頭IP信息的一些軟件。不過使用這些軟件有些缺點,譬如:耗費資源嚴(yán)重,
降低計算機性能;訪問一些論壇或者網(wǎng)站時會受影響;不適合網(wǎng)吧用戶使用等等。
現(xiàn)在的個人用戶采用最普及隱藏IP的方法應(yīng)該是使用代理,由于使用代理服務(wù)器
后,“轉(zhuǎn)址服務(wù)”會對發(fā)送出去的數(shù)據(jù)包有所修改,致使“數(shù)據(jù)包分析”的方法失
效。一些容易泄漏用戶IP的網(wǎng)絡(luò)軟件(QQ、MSN、IE等)都支持使用代理方式連接
Internet,特別是QQ使用“ ezProxy”等代理軟件連接后, IP版的QQ都無法顯
示該IP地址。雖然代理可以有效地隱藏用戶IP,但攻擊者亦可以繞過代理,查找到
對方的真實IP地址,用戶在何種情況下使用何種方法隱藏IP,也要因情況而論。
17.未加密登錄請求
漏洞描述:
由于Web配置不安全,登陸請求把諸如用戶名和密碼等敏感字段未加密進(jìn)行傳
輸,攻擊者可以竊聽網(wǎng)絡(luò)以劫獲這些敏感信息。
修復(fù)建議:
建議進(jìn)行加密后再傳輸。