常見的web網站攻擊

1.XSS跨站腳本攻擊

XSS (Cross-Site Scripting),跨站腳本攻擊,因爲縮寫和 CSS重疊,所以只能叫 XSS。跨站腳本攻擊是指通過存在安全漏洞的Web網站註冊用戶的瀏覽器內運行非法的非本站點HTML標籤或JavaScript進行的一種攻擊。常見攻擊手段:

攻擊手段

1.利用url參數直接注入:http://localhost/?from=\<script>任意代碼\</script>,某些網站會直接將url的參數讀取再寫入到網頁。

2.存儲到數據庫之後再讀取:利用網站的評論功能,將腳本存入到DB,當再次讀取時,會影響所有看到這條評論的用戶。

危害

獲取頁面數據、獲取Cookies、劫持前端邏輯、發送請求、偷取網站的任意數據、偷取用戶的資料、偷取用戶的祕密和登錄態、欺騙用戶。

防禦方法:

  • 轉義之後再使用,轉義之後再儲存。
  • HttpOnly Cookie,這是預防XSS攻擊獲取用戶cookies最有效的方法。
  • 內容安全策略(CSP,Content Security Policy )是一個附加的安全層,用於幫助檢測和緩解某些類型的攻擊,包括跨站腳本(xss)和數據注入等攻擊。這些攻擊可用於實現從數據竊取到網站破壞或作爲惡意軟件分發版本等用途。
2.CSRF跨站請求僞造

它是一種常見的攻擊方式,利用用戶已經登錄的身份,在用戶毫不知情的情況下,以用戶的名義完成非法操作。

攻擊手段

  • 用戶已經登錄了站點A,並在本地記錄cookie。
  • 用戶在沒有登出站點A的情況下(也就是cookie生效的情況),訪問了惡意攻擊者提供的引誘危險站點B(B站點要求訪問A站點)。
  • 站點A沒做任何CSRF防禦。

危害

利用用戶登錄態在用戶不知情的情況下,完成業務請求(微博刷贊)、盜取用戶資金、冒充用戶發帖背鍋、損害網站信譽。

防禦方法

  • Referer Check - 但Https不發送referer。
  • 驗證碼。
  • cookie值進行hash:攻擊者在訪問受信任的網站A時,雖然瀏覽器可以在請求中帶上cookie,但網站A不僅僅是通過cookie來判斷用戶身份,同時通過用戶發送過來的的內容中的僞隨機數來判斷請求是否是真正的用戶發送。攻擊者在請求A的內容時,不能再提交的內容中產生能僞隨機數(通過cookie哈希花的值)。
3.Clickjacking點擊劫持

點擊劫持是一種視覺欺騙的手段。攻擊者將需要攻擊的網站通過iframe方式嵌入到自己的網站,並將iframe設置爲透明,在頁面中顯示出一個按鈕,引導用戶點擊。

防禦方法

  • X-FRAME-OPTIONS:X-FRAME-OPTION是一個HTTP響應頭,在現代瀏覽器中有一個很好的支持。這個HTTP響應頭就是爲了防禦iframe嵌套的點擊劫持。該響應頭可選的值是DENY,表示頁面不允許通過iframe的方式展示;還有SAMEORIGIN,表示頁面可以在相同域名下使用iframe展示;還有ALLOW-FROM,表示頁面可以在指定域名下使用iframe展示。
  • js方式:top.location = self.location用該函數判斷是否同源。
4.SQL注入

在用戶輸入用戶名和密碼的時候,使用特殊密碼(如1 or ‘1’='1),騙過服務器返回用戶的信息。

防禦方法

  • 所有查詢語句都使用數據庫提供的參數化查詢接口,參數化的語句使用參數而不是將用戶的變量嵌入到SQL語句中,即不要拼接SQL語句
  • 嚴格限制web應用數據庫的操作權限,給此用戶提供僅僅能滿足其工作需求的權限,從而最大限度的減少注入攻擊對數據庫的危害。
  • 後端檢查輸入數據是否符合預期,嚴格限制變量的類型,例如使用正則表達式進行一些匹配處理。
  • 對進入數據庫的特殊字符(’,’’,,<,>,&,*,;等)進行轉義處理,或者編碼轉換
5.OS命令注入

攻擊手段

OS命令注入和SQL注入差不多,只不過SQL是針對數據庫的,OS命令注入是針對操作系統的。OS命令注入攻擊是指通過web應用執行非法的操作系統命令達到攻擊目的。只要能調用shell函數的地方就存在被攻擊的風險。倘若存在調用shell的漏洞,就可以插入指向性非法命令。

// 以 Node.js 爲例,假如在接口中需要從 github 下載用戶指定的 repo
const exec = require('mz/child_process').exec;
let params = {/* 用戶輸入的參數 */};
exec(`git clone ${params.repo} /some/path`);


// 如果傳入的參數是會怎樣
https://github.com/xx/xx.git && rm -rf /* &&
6.請求劫持

攻擊手段

  • DNS劫持:就是DNS服務器(DNS解析的個步驟)被篡改,修改了域名解析的結果,是訪問的不是預期ip。
  • HTTP劫持:運營商劫持,只能升級爲https。
7.DDOS分佈式拒絕服務攻擊

DDOS不是一中攻擊,而是一大類攻擊的總稱。它有幾十種類型,新的攻擊方法還在不斷的創新出來。網站運行的各個環節,都可以是攻擊目標。只要把一個環節突破了,使得整個流程跑不起來,就達到了癱瘓服務的目的。

攻擊手段

  • SYN Flood:此攻擊通過向目標發送具有欺騙性源ip地址的大量TCP“出事連接請求”,SYN數據包來利用TCP握手。目標機器響應每個連接的請求,然後等待握手中的最後一步,這一步從未發生,耗盡了進程中的目標資源。
  • HTTP Flood:此攻擊類似於同時在多個不同的計算機上按刷新頁面,導致大量的HTTP請求氾濫服務器,致使服務器拒絕服務。

防禦方法

  • 增加帶寬+cdn
  • HTTP請求攔截
  • 備份網站,掛了以後做一個補救措施
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章