1. 程式人生 > 其它 >CSRF漏洞解析

CSRF漏洞解析

技術標籤:Web 漏洞解析csrf安全漏洞安全

文章目錄

一、漏洞概述

1、簡單概述

Cross-site request forgery 簡稱為“CSRF”。
在CSRF的攻擊場景中攻擊者會偽造一個請求(這個請求一般是一個連結),然後欺騙目標使用者進行點選,使用者一旦點選了這個請求,整個 攻擊也就完成了。所以CSRF攻擊也被稱為"one click"攻擊。

2、場景分析

Coby,在一個購物網站上,試圖修改自己的購物資訊,比如收貨地址。

正常情況下,Coby 登入(獲取許可權)後,編輯好修改的內容,點選 提交 (提交申請),即可完成個人資訊的修改。其URL請求內容如下:

http://192.168.112.200/ant/vulnerabilities/csrf/csrfget/csrf_mem_edit.php?sex=&phonenum=12345678922&add=地球村504號&email=[email protected]’ka’chu.com&submit=submit

此時攻擊者hack想要將Coby的休息修改為自己的。所以hack就可以偽造一個請求資訊,然後引誘Coby在登入的情況下點選

,攻擊成功!

http://192.168.112.200/ant/vulnerabilities/csrf/csrfget/csrf_mem_edit.php?sex=&phonenum=12345678922&add=地球村555號&email=[email protected]’ka’chu.com&submit=submit

攻擊成功的原因:

  • xxx購物網站的資訊修改處沒有對CSRF進行防護,導致容易被偽造。
  • Coby在登入的情況下點選了hack的連結。

簡單分析:
Coby不在登入狀態或者沒有點選hack的連結,攻擊都不會產生。

3、CSRF與XSS的區別

CSRF

:攻擊者誘導使用者點選連結,在使用者登入的情況下,借用許可權完成攻擊
XSS:通過指令碼獲取使用者Cooki,直接盜取使用者許可權,然後實施破壞。

二、CSRF漏洞測試流程

1、 對目標站點的增刪改查的地方進行標記,並觀察其邏輯,判斷是否可以偽造。

  • 比如修改賬戶密碼時,並不需要驗證舊密碼,此時容易被偽造
  • 對敏感的資訊修改時,沒有使用安全的Token,導致容易被偽造

2、確認登入憑證的有限期
在一些情況下,使用者退出或關閉瀏覽器,單cookie任然有效,或者session並沒有及時過期,導致CSRF攻擊的概率變高。

三、實驗演示

實驗環境: Windows10,kali2020,DVWA漏洞練習平臺

1、GET型的CSRF漏洞

第一步: 模擬使用者進行賬號密碼更新,然後使用burp suite截獲相關的請求。
在這裡插入圖片描述
在這裡插入圖片描述
第二步: 修改HTTP 的get請求資訊,將密碼改為自己設定的密碼,偽造一個HTTP請求,傳送給使用者,誘導其訪問該請求。
在這裡插入圖片描述
第三步: 模擬使用者點選該連結,攻擊成功!返回平臺,發現密碼已被更改。使用自己更改後的密碼登入,能成功!
在這裡插入圖片描述

2、POST型的CSRF漏洞

POST型的CSRF漏洞由於表單內容不通過URL提交,所以利用相對麻煩。
攻擊者可以使用自己搭建的平臺誘導使用者進入後點擊表單,然後使用自己平臺的URL向原平臺提交請求。

四、常見防禦措施

1、增加Token

  • 對關鍵操作增加Token,token值必須隨機且每次都不一樣

2、安全的會話管理

  • 不在客戶端儲存敏感資訊
  • 設定直接關閉、退出時的會話過期機制,如10分鐘沒有操作則自動退出

3、訪問控制

  • 對敏感資訊的修改進行二次驗證
  • 資料修改時使用POST,增加攻擊難度
  • 通過HTTP頭部總的referer來限制原始頁面

4、增加驗證碼