網路安全——常見的幾種WEB攻擊:

cosmos033發表於2018-10-25

 

1.XSS攻擊:指的是跨指令碼攻擊,指的是攻擊者在網頁中巢狀,惡意指令碼程式,當使用者開啟網頁時,程式開始在瀏覽器上啟動,盜取使用者的cooks,從而盜取密碼等資訊,下載執行木馬程式。

解決方法:XSS之所以會發生,是因為使用者輸入的資料變成了程式碼。因此,我們需要對使用者輸入的資料進行HTML轉義處理,將其中的“尖括號”、“單引號”、“引號” 之類的特殊字元進行轉義編碼。

 

2.CSRF攻擊:CSRF攻擊的全稱是跨站請求偽造(cross site request forgery), 是一種對網站的惡意利用,你可以這麼理解CSRF攻擊:攻擊者盜用了你的身份,以你的名義向第三方網站傳送惡意請求。CRSF能做的事情包括利用你的身份發郵件、發簡訊、進行交易轉賬等等,甚至盜取你的賬號。

解決方法:

cookie設定為HttpOnly

CSRF攻擊很大程度上是利用了瀏覽器的cookie,為了防止站內的XSS漏洞盜取cookie,需要在cookie中設定"HttpOnly"屬性,這樣通過程式(如JavascriptS指令碼、Applet等)就無法讀取到cookie資訊,避免了攻擊者偽造cookie的情況出現。

通過Referer識別

根據HTTP協議,在HTTP頭中有一個欄位叫Referer,它記錄了該HTTP請求的來源地址。在通常情況下,訪問一個安全受限頁面的請求都來自於同一個網站。

與XSS攻擊的區別:儘管聽起來跟XSS跨站指令碼攻擊有點相似,但事實上CSRF與XSS差別很大,XSS利用的是站點內的信任使用者,而CSRF則是通過偽裝來自受信任使用者的請求來利用受信任的網站。

 

3.SQL隱碼攻擊:所謂SQL隱碼攻擊,就是通過把SQL命令偽裝成正常的HTTP請求引數,傳遞到服務端,欺騙伺服器最終執行惡意的SQL命令,達到入侵目的。攻擊者可以利用SQL隱碼攻擊漏洞,查詢非授權資訊, 修改資料庫伺服器的資料,改變表結構,甚至是獲取伺服器root許可權。總而言之,SQL隱碼攻擊漏洞的危害極大,攻擊者採用的SQL指令,決定攻擊的威力。當前涉及到大批量資料洩露的攻擊事件,大部分都是通過利用SQL隱碼攻擊來實施的

解決方法:使用預編譯語句

預編譯語句PreparedStatement是java.sql中的一個介面,繼承自Statement介面。通過 Statement物件執行SQL語句時,需要將SQL語句傳送給DBMS,由DBMS先進行編譯後再執行。而預編譯語句和Statement不同,在建立PreparedStatement物件時就指定了SQL語句,該語句立即傳送給DBMS進行編譯,當該編譯語句需要被執行時,DBMS直接執行編譯後的SQL語句,而不需要像其他SQL語句那樣首先將其編譯。 

預編譯語句使用引數佔位符來替代需要動態傳入的引數,這樣攻擊者無法改變SQL語句的結構,SQL語句的語義不會發生改變,即便使用者傳入類似於前面' or '1'='1這樣的字串,資料庫也會將其作為普通的字串來處理。

使用ORM框架

由上文可見,防止SQL隱碼攻擊的關鍵在於對一些關鍵字元進行轉義,而常見的一些ORM框架,如 ibatis、hibernate等,都支援對相應的關鍵字或者特殊符號進行轉義,可以通過簡單的配置, 很好的預防SQL隱碼攻擊漏洞,降低了普通的開發人員進行安全程式設計的門檻

通過#符號配置的變數,ibatis能夠對輸入變數的一些關鍵字進行轉義,防止SQL隱碼攻擊。

避免密碼明文存放

對儲存的密碼進行單向Hash,如使用MD5對密碼進行摘要,而非直接儲存明文密碼,這樣的好處就是萬一使用者資訊洩露,即圈內所說的被“拖庫”,黑客無法直接獲取使用者密碼,而只能得到一串跟密碼相差十萬八千里的Hash碼。

處理好相應的異常

後臺的系統異常,很可能包含了一些如伺服器版本、資料庫版本、程式語言等等的資訊,甚至是資料庫連線的地址及使用者名稱密碼,攻擊者可以按圖索驥,找到對應版本的伺服器漏洞或者資料庫漏洞進行攻擊,因此,必須要處理好後臺的系統異常,重定向到相應的錯誤處理頁面,而不是任由其直接輸出到頁面上。

 

4.檔案上傳漏洞:檔案上傳的時候,沒有對於檔案的型別進行處理,從而導致攻擊者上傳了一些惡意的指令碼程式,從而達到攻擊的目的。

 

5.DDos漏洞:分散式拒絕服務攻擊:

 

6.DNS Query Flood攻擊:採用的方法是向被攻擊的伺服器傳送海量的域名解析請求,通常,請求解析的域名是隨機生成,大部分根本就不存在,並且通過偽造埠和客戶端IP,防止查詢請求被ACL過濾。被攻擊的DNS伺服器在接收到域名解析請求後,首先會在伺服器上查詢是否有對應的快取, 由於域名是隨機生成的,幾乎不可能有相應的快取資訊,當沒有快取,並且該域名無法直接由該DNS伺服器進行解析的時候,DNS伺服器會向其上層DNS伺服器遞迴查詢域名資訊,直到全球網際網路的13臺根DNS伺服器。大量不存在的域名解析請求,給伺服器帶來了很大的負載,當解析請求超過一定量的時候,就會造成DNS伺服器解析域名超時,這樣攻擊者便達成了攻擊目的

 

7.CC攻擊:CC攻擊的原理是這樣的,攻擊者通過控制的大量“肉雞”或者利用從網際網路上搜尋的大量匿名的HTTP代理,模擬正常使用者給網站發起請求直到該網站拒絕服務為止。大部分網站會通過CDN以及分散式快取來加快服務端響應,提升網站的吞吐量,而這些精心構造的HTTP請求往往有意避開這些快取,需要進行多次DB查詢操作或者是一次請求返回大量的資料,加速系統 資源消耗,從而拖垮後端的業務處理系統,甚至連相關儲存以及日誌收集系統也無法倖免。

相關文章