IT安全運維 | 幾個常見web漏洞匯總
| 2020-04-24 15:45:21 標簽:
IT安全運維 | 幾個常見web漏洞匯總
在服務(wù)器安全領(lǐng)域,針對web的漏洞非常多。對web服務(wù)器的安全運維也顯得尤為重要。作為管理員需要對這些漏洞有清楚的了解,避免在配置web服務(wù)器造成安全隱患,導致服務(wù)器被攻擊滲透。下面整理出幾種常見漏洞,供廣大IT安全運維工程師參考。

一、SQL注入漏洞
SQL注入攻擊(SQL Injection),簡稱注入攻擊、SQL注入,被廣泛用于非法獲取網(wǎng)站控制權(quán),是發(fā)生在應用程序的數(shù)據(jù)庫層上的安全漏洞。在設(shè)計程序,忽略了對輸入字符串中夾帶的SQL指令的檢查,被數(shù)據(jù)庫誤認為是正常的SQL指令而運行,從而使數(shù)據(jù)庫受到攻擊,可能導致數(shù)據(jù)被竊取、更改、刪除,以及進一步導致網(wǎng)站被嵌入惡意代碼、被植入后門程序等危害。
通常情況下,SQL注入的位置包括:
(1)表單提交,主要是POST請求,也包括GET請求;
(2)URL參數(shù)提交,主要為GET請求參數(shù);
(3)Cookie參數(shù)提交;
(4)HTTP請求頭部的一些可修改的值,比如Referer、User_Agent等;
(5)一些邊緣的輸入點,比如.mp3文件的一些文件信息等。
常見的防范方法
(1)所有的查詢語句都使用數(shù)據(jù)庫提供的參數(shù)化查詢接口,參數(shù)化的語句使用參數(shù)而不是將用戶輸入變量嵌入到SQL語句中。當前幾乎所有的數(shù)據(jù)庫系統(tǒng)都提供了參數(shù)化SQL語句執(zhí)行接口,使用此接口可以非常有效的防止SQL注入攻擊。
(2)對進入數(shù)據(jù)庫的特殊字符(’”<>&*;等)進行轉(zhuǎn)義處理,或編碼轉(zhuǎn)換。
(3)確認每種數(shù)據(jù)的類型,比如數(shù)字型的數(shù)據(jù)就必須是數(shù)字,數(shù)據(jù)庫中的存儲字段必須對應為int型。
(4)數(shù)據(jù)長度應該嚴格規(guī)定,能在一定程度上防止比較長的SQL注入語句無法正確執(zhí)行。
(5)網(wǎng)站每個數(shù)據(jù)層的編碼統(tǒng)一,建議全部使用UTF-8編碼,上下層編碼不一致有可能導致一些過濾模型被繞過。
(6)嚴格限制網(wǎng)站用戶的數(shù)據(jù)庫的操作權(quán)限,給此用戶提供僅僅能夠滿足其工作的權(quán)限,從而最大限度的減少注入攻擊對數(shù)據(jù)庫的危害。
(7)避免網(wǎng)站顯示SQL錯誤信息,比如類型錯誤、字段不匹配等,防止攻擊者利用這些錯誤信息進行一些判斷。
(8)在網(wǎng)站發(fā)布之前建議使用一些專業(yè)的SQL注入檢測工具進行檢測,及時修補這些SQL注入漏洞。
二、跨站腳本漏洞
跨站腳本攻擊(Cross-site scripting,通常簡稱為XSS)發(fā)生在客戶端,可被用于進行竊取隱私、釣魚欺騙、竊取密碼、傳播惡意代碼等攻擊。
XSS攻擊使用到的技術(shù)主要為HTML和Javascript,也包括VBScript和ActionScript等。XSS攻擊對WEB服務(wù)器雖無直接危害,但是它借助網(wǎng)站進行傳播,使網(wǎng)站的使用用戶受到攻擊,導致網(wǎng)站用戶帳號被竊取,從而對網(wǎng)站也產(chǎn)生了較嚴重的危害。
XSS類型包括:
(1)非持久型跨站:即反射型跨站腳本漏洞,是目前最普遍的跨站類型??缯敬a一般存在于鏈接中,請求這樣的鏈接時,跨站代碼經(jīng)過服務(wù)端反射回來,這類跨站的代碼不存儲到服務(wù)端(比如數(shù)據(jù)庫中)。上面章節(jié)所舉的例子就是這類情況。
(2)持久型跨站:這是危害最直接的跨站類型,跨站代碼存儲于服務(wù)端(比如數(shù)據(jù)庫中)。常見情況是某用戶在論壇發(fā)貼,如果論壇沒有過濾用戶輸入的Javascript代碼數(shù)據(jù),就會導致其他瀏覽此貼的用戶的瀏覽器會執(zhí)行發(fā)貼人所嵌入的Javascript代碼。
(3)DOM跨站(DOM XSS):是一種發(fā)生在客戶端DOM(Document Object Model文檔對象模型)中的跨站漏洞,很大原因是因為客戶端腳本處理邏輯導致的安全問題。
常用的防止XSS技術(shù)包括:
(1)與SQL注入防護的建議一樣,假定所有輸入都是可疑的,必須對所有輸入中的script、iframe等字樣進行嚴格的檢查。這里的輸入不僅僅是用戶可以直接交互的輸入接口,也包括HTTP請求中的Cookie中的變量,HTTP請求頭部中的變量等。
(2)不僅要驗證數(shù)據(jù)的類型,還要驗證其格式、長度、范圍和內(nèi)容。
(3)不要僅僅在客戶端做數(shù)據(jù)的驗證與過濾,關(guān)鍵的過濾步驟在服務(wù)端進行。
(4)對輸出的數(shù)據(jù)也要檢查,數(shù)據(jù)庫里的值有可能會在一個大網(wǎng)站的多處都有輸出,即使在輸入做了編碼等操作,在各處的輸出點時也要進行安全檢查。
(5)在發(fā)布應用程序之前測試所有已知的威脅。
三、弱口令漏洞
弱口令(weak password) 沒有嚴格和準確的定義,通常認為容易被別人(他們有可能對你很了解)猜測到或被破解工具破解的口令均為弱口令。設(shè)置密碼通常遵循以下原則:
(1)不使用空口令或系統(tǒng)缺省的口令,這些口令眾所周之,為典型的弱口令。
(2)口令長度不小于8個字符。
(3)口令不應該為連續(xù)的某個字符(例如:AAAAAAAA)或重復某些字符的組合(例如:tzf.tzf.)。
(4)口令應該為以下四類字符的組合,大寫字母(A-Z)、小寫字母(a-z)、數(shù)字(0-9)和特殊字符。每類字符至少包含一個。如果某類字符只包含一個,那么該字符不應為首字符或尾字符。
(5)口令中不應包含本人、父母、子女和配偶的姓名和出生日期、紀念日期、登錄名、E-mail地址等等與本人有關(guān)的信息,以及字典中的單詞。
(6)口令不應該為用數(shù)字或符號代替某些字母的單詞。
(7)口令應該易記且可以快速輸入,防止他人從你身后很容易看到你的輸入。
(8)至少90天內(nèi)更換一次口令,防止未被發(fā)現(xiàn)的入侵者繼續(xù)使用該口令。
四、HTTP報頭追蹤漏洞
HTTP/1.1(RFC2616)規(guī)范定義了HTTP TRACE方法,主要是用于客戶端通過向Web服務(wù)器提交TRACE請求來進行測試或獲得診斷信息。當Web服務(wù)器啟用TRACE時,提交的請求頭會在服務(wù)器響應的內(nèi)容(Body)中完整的返回,其中HTTP頭很可能包括Session Token、Cookies或其它認證信息。攻擊者可以利用此漏洞來欺騙合法用戶并得到他們的私人信息。該漏洞往往與其它方式配合來進行有效攻擊,由于HTTP TRACE請求可以通過客戶瀏覽器腳本發(fā)起(如XMLHttpRequest),并可以通過DOM接口來訪問,因此很容易被攻擊者利用。
防御HTTP報頭追蹤漏洞的方法通常禁用HTTP TRACE方法。
五、Struts2遠程命令執(zhí)行漏洞
ApacheStruts是一款建立Java web應用程序的開放源代碼架構(gòu)。Apache Struts存在一個輸入過濾錯誤,如果遇到轉(zhuǎn)換錯誤可被利用注入和執(zhí)行任意Java代碼。
網(wǎng)站存在遠程代碼執(zhí)行漏洞的大部分原因是由于網(wǎng)站采用了Apache Struts Xwork作為網(wǎng)站應用框架,由于該軟件存在遠程代碼執(zhí)高危漏洞,導致網(wǎng)站面臨安全風險。CNVD處置過諸多此類漏洞,例如:“GPS車載衛(wèi)星定位系統(tǒng)”網(wǎng)站存在遠程命令執(zhí)行漏洞(CNVD-2012-13934);Aspcms留言本遠程代碼執(zhí)行漏洞(CNVD-2012-11590)等。
修復此類漏洞,只需到Apache官網(wǎng)升級Apache Struts到最新版本:http://struts.apache.org
六、文件上傳漏洞
文件上傳漏洞通常由于網(wǎng)頁代碼中的文件上傳路徑變量過濾不嚴造成的,如果文件上傳功能實現(xiàn)代碼沒有嚴格限制用戶上傳的文件后綴以及文件類型,攻擊者可通過 Web 訪問的目錄上傳任意文件,包括網(wǎng)站后門文件(webshell),進而遠程控制網(wǎng)站服務(wù)器。
因此,在開發(fā)網(wǎng)站及應用程序過程中,需嚴格限制和校驗上傳的文件,禁止上傳惡意代碼的文件。同時限制相關(guān)目錄的執(zhí)行權(quán)限,防范webshell攻擊。
七、私有IP地址泄露漏洞
IP地址是網(wǎng)絡(luò)用戶的重要標示,是攻擊者進行攻擊前需要了解的。獲取的方法較多,攻擊者也會因不同的網(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。
針對最有效的“數(shù)據(jù)包分析方法”而言,就可以安裝能夠自動去掉發(fā)送數(shù)據(jù)包包頭IP信息的一些軟件。不過使用這些軟件有些缺點,譬如:耗費資源嚴重,降低計算機性能;訪問一些論壇或者網(wǎng)站時會受影響;不適合網(wǎng)吧用戶使用等等?,F(xiàn)在的個人用戶采用最普及隱藏IP的方法應該是使用代理,由于使用代理服務(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,也要因情況而論。
八、未加密登錄請求
由于Web配置不安全,登陸請求把諸如用戶名和密碼等敏感字段未加密進行傳輸,攻擊者可以竊聽網(wǎng)絡(luò)以劫獲這些敏感信息。建議進行例如SSH等的加密后再傳輸。
九、敏感信息泄露漏洞
SQL注入、XSS、目錄遍歷、弱口令等均可導致敏感信息泄露,攻擊者可以通過漏洞獲得敏感信息。針對不同成因,防御方式不同
以上內(nèi)容由北京艾銻無限科技發(fā)展有限公司整理