漏洞


1.跨站點請求偽造(CSRF)

1.1 簡介

CSRF攻擊的全稱是跨站請求偽造( cross site request forgery ):

是一種對網站的惡意利用,盡管聽起來跟XSS跨站腳本攻擊有點相似,但事 實上CSRF與XSS差別很大,XSS利用的是站點內的信任用戶,而CSRF則是通過 偽裝來自受信任用戶的請求來利用受信任的網站。

image-20211221235529912

簡單理解:一種可以被攻擊者用來通過用戶瀏覽器冒充用戶身份向服務器發送 偽造請求並被目標服務器成功執行的漏洞被稱之為CSRF漏洞。

特點:

用戶瀏覽器:表示的受信任的用戶
冒充身份:惡意程序冒充受信任用戶(瀏覽器)身份
偽造請求:借助於受信任用戶瀏覽器發起的訪問

1.2 CSRF攻擊原理

image-20211221235734341

1.3 漏洞危害分析

CSRF攻擊特點:

  • 攻擊時機:網站的cookie在瀏覽器中沒有過期,不關閉瀏覽器或者退出登錄

  • 攻擊前提:對目標網站接口有一定了解

  • 攻擊難度:攻擊難度高於XSS

與XSS攻擊相比,CSRF攻擊往往不大流行(因此對其進行防范的資源也相當 稀少)和難以防范,所以被認為比XSS更具危險性。

危害: 修改密碼、網銀轉賬 ......

image-20211221235905571

1.4 安全防護

  • 區分是否為偽造請求
  • 二次驗證

referer校驗:

HTTP Referer是header的一部分,當瀏覽器向web服務器發送請求的時候,一 般會帶上Referer,告訴服務器該網頁是從哪個頁面鏈接過來的,服務器因此可 以獲得一些信息用於處理。

image-20211222000035342

業務二次校驗:

  • 修改密碼,需輸入原密碼
  • 交易系統設置交易密碼
  • 增加圖形驗證碼校驗
  • 網銀轉賬短信驗證碼

2、點擊劫持

2.1 攻擊原理

點擊劫持(Click Jacking),也被稱為UI覆蓋攻擊。

1、黑客創建一個網頁利用iframe包含目標網站;隱藏目標中的網站,是用戶無法察覺到目標網站的存在;

誘使用戶點擊圖中特定的按鈕。特定的按鈕為位置和原網頁中關鍵按鈕位置一致

2 、用戶在不知情的情況下點擊按鈕,被引誘執行了危險操作

2.2 攻擊方式

兩種方式:

  • 一是攻擊者使用一個透明的iframe,覆蓋在一個網頁上,然后誘使用戶在該 頁面上進行操作,此時用戶將在不知情的情況下點擊透明的iframe頁面;

  • 二是攻擊者使用一張圖片覆蓋在網頁,遮擋網頁原有位置的含義

2.3 解決辦法

使用一個HTTP頭——X-Frame-Options。X-Frame-Options可以說是為了解決 ClickJacking而生的,它有三個可選的值:

  • DENY:瀏覽器會拒絕當前頁面加載任何frame頁面;
  • SAMEORIGIN :frame頁面的地址只能為同源域名下的頁面;
  • ALLOW-FROM origin:允許frame加載的頁面地址;

nginx配置:

add_header X-Frame-Options SAMEORIGIN;

3、圖片覆蓋攻擊與防護

圖片覆蓋攻擊(Cross Site Image Overlaying),攻擊者使用一張或多張圖 片,利用圖片的style或者能夠控制的CSS,將圖片覆蓋在網頁上,形成點擊劫 持。當然圖片本身所帶的信息可能就帶有欺騙的含義,這樣不需要用戶點擊, 也能達到欺騙的目的。

防護

在防御圖片覆蓋攻擊時,需要檢查用戶提交的HTML代碼中,img標簽的style屬 性是否可能導致浮出。

4、URL跳轉漏洞

URL跳轉漏洞(URL重定向漏洞),跳轉漏洞一般用於釣魚攻擊。

https://link.zhihu.com/?target=https://www.baidu.com/

4.1 原理:

URL跳轉漏洞本質上是利用Web應用中帶有重定向功能的業務,將用戶從一 個網站重定向到另一個網站。其最簡單的利用方式為誘導用戶訪問http://www. aaa.com?returnUrl=http://www.evil.com,借助www.aaa.com讓用戶訪問wwww.evil.com,這種漏洞被利用了對用戶和公司都是一種損失。

4.2 防護方案

限制referer、添加token,這樣可以避免惡意用戶構造跳轉鏈接到處散播,修復該漏洞最根本的方法還是上述的嚴格檢查跳轉域名。

  • 代碼固定跳轉地址,不讓用戶控制變量
  • 跳轉目標地址采用白名單映射機制 比如1代表www.goole.cn,2代表www.baidu.com,其它記錄日志
  • 合理充分的校驗機制,校驗跳轉的目標地址,非己方地址時告知用戶跳轉風x險

5、Session攻擊

5.1 會話(Session)劫持

會話劫持(Session hijacking)就是一種通過竊取用戶SessionID后,使用該 SessionID登錄進目標賬戶的攻擊方法,此時攻擊者實際上是使用了目標賬戶的 有效Session。如果SessionID是保存在Cookie中的,則這種攻擊可以稱為 Cookie劫持。

image-20211222000944320

5.2 會話固定(Session fixation)

會話固定(Session fixation)是一種誘騙受害者使用攻擊者指定的會話標識 (SessionID)的攻擊手段。這是攻擊者獲取合法會話標識的最簡單的方法。讓 合法用戶使用黑客預先設置的sessionID進行登錄,從而是Web不再進行生成新 的sessionID,從而導致黑客設置的sessionId變成了合法橋梁。

image-20211222001034973

5.3 Session保持攻擊

一般來說,Session是有生命周期的,當用戶長時間未活動后,或者用戶點擊退 出后,服務器將銷毀Session。Session如果一直未能失效,會導致什么問題 呢?前面的章節提到session劫持攻擊,是攻擊者竊取了用戶的SessionID,從 而能夠登錄進用戶的賬戶

但如果攻擊者能一直持有一個有效的Session(比如間隔性地刷新頁面’以告訴服 務器這個用戶仍然在活動),而服務器對於活動的Session也一直不銷毀的話, 攻擊者就能通過此有效Session—直使用用戶的賬戶,成為一個永久的‘后門


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM