CSRF漏洞解析
阿新 • • 發佈:2021-01-17
文章目錄
一、漏洞概述
1、簡單概述
Cross-site request forgery 簡稱為“CSRF”。
在CSRF的攻擊場景中攻擊者會偽造一個請求(這個請求一般是一個連結),然後欺騙目標使用者進行點選,使用者一旦點選了這個請求,整個 攻擊也就完成了。所以CSRF攻擊也被稱為"one click"攻擊。
2、場景分析
Coby,在一個購物網站上,試圖修改自己的購物資訊,比如收貨地址。
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、增加驗證碼