一、CSRF漏洞概述
1.1 什么是CSRF漏洞
在CSRF的攻擊場景中攻擊者會偽造一個請求(整個請求一般是一個鏈接),然后七篇目標用戶進行點擊,用戶一旦點擊了這個請求,整個攻擊也就完成了,所以CSRF攻擊也被稱為"one click"攻擊,
1.2 如何確認一個web系統存在CSRF漏洞
(1)對目標網站增刪改的地方進行標記,并觀察其邏輯,判斷你請求是否可以被偽造
例如:修改管理員賬號時,不需要驗證舊密碼,導致請求容易被偽造;
例如:對于敏感資訊的修改并沒有使用安全的token認證,導致請求容易被偽造,
(2)確認憑證的有效期(整個問題會提高CSRF被利用的概率)
例如:雖然用戶退出或者關閉了瀏覽器,但是cookie仍然有效,或者session并沒有及時過期,導致CSRF攻擊變的簡單,
1.3 進行CSRF攻擊需要具備什么條件?
例如我們要修改網站用戶的資訊,
(1)網站沒有對個人資訊修改的請求進行防CSRF處理
(2)用戶本身已經登陸后臺,并點擊了攻擊者的惡意鏈接
1.4 CSRF與XSS的區別
CSRF是借用戶的權限完成攻擊,攻擊者并沒有拿到用戶的權限;
XSS是直接盜取了用戶的權限,然后實施破壞,
二、CSRF(get/post)實驗演示和決議
2.1 GET方式
1、來到我們的pikachu平臺CSRF(get)模塊,打開burp suite進行抓包,然后執行下圖中的操作,
2、來到burp suite,將截取的資料包里邊的GET請求內容復制到notepad++,進行URL鏈接的偽造,
3、復制上邊的地址,然后再瀏覽器新開一個標簽頁,輸入剛才的鏈接,回車,
4、這時候如果用戶重繪自己的頁面,資訊確實被做了修改,
2.2 POST方式
1、來到pikuchu平臺的CSRF(post)模塊,我們同樣使用lucy進行登陸,登錄之后我們將地址改回usa,性別改回girl,然后提交修改的資料,來到burp suite觀看結果,
三、CSRF token
token是如何防止CSRF的?
CSRF的主要問題是敏感操作的鏈接容易被偽造,我們需要做的就是讓這個鏈接不容易被偽造,我們可以采取每次請求,都增加一個隨機碼(應該夠隨機,不容易偽造)的方法,這樣后臺每次都會對隨機碼進行驗證,
下面我們來演示一下,
1、來到pikachu的CSRF token 模塊,仍然拿lucy進行登陸,然后進入到資訊修改頁面,
2、我們再看一下抓到的包,打開burp suite
3、下面我們再來看一下原始碼,
四、常見的CSRF防范措施
1、增加token驗證(常用的做法)
對關鍵操作增加token引數,token值必須是隨機的,每次都不一樣
2、關于安全的會話管理(避免會話被利用)
(1)不要再客戶端保存敏感資訊(比如身份認證資訊);
(2)測驗直接關閉,退出時的會話過期機制;
(3)設定會話國企機制,比如幾分鐘內誤操作,自動登陸超時,
3、訪問控制安全管理
(1)敏感資訊的修改時需要對身份進行二次認證,例如:修改賬號時,需要驗證舊的密碼,
(2)敏感資訊的修改使用POST,而不是GET
(3)通過http投不中的referer來限制原頁面,
4、增加驗證碼:
一般用在登陸(防暴力破解),也可以用在其他重要資訊操作的表單中(需要考慮可用性)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/43312.html
標籤:其他
