實戰篇——CSRF漏洞pikachu靶場實戰
CSRF的原理
攻擊者利用使用者在某個網站上的已登入狀態,誘使使用者點選惡意連結,惡意頁面會向伺服器自動傳送預先準備好的惡意請求。由於請求中自動包含了使用者的認證憑證,伺服器會誤以為是合法的使用者操作,從而執行惡意請求。
CSRF的分類
(1) GET型
點選submit,抓包:
構造惡意連結:
http://192.168.118.147/pikachu-master/vul/csrf/csrfget/csrf_get_edit.php?sex=boy&phonenum=11111111111&add=nba+lakes&email=kobe%40pikachu.com&submit=submit
點選惡意連結,成功修改電話號碼:
(2) POST型
點選submit,抓包:
生成CSRF PoC:
在第三方伺服器上構造惡意頁面:
此處在原有PoC的基礎上進行了一定的修改,首先透過JS指令碼實現按鈕的自動點選,其次將按鈕設定為不可見。
點選惡意頁面對應的連結,成功修改電話號碼:
CSRF的防禦
1.使用同站策略SameSite Policy:
Strict禁止Cookie在跨站請求中傳送,Lax禁止Cookie在跨站Post請求中傳送,None允許Cookie在跨站請求中傳送
2.使用CSRF Token,將一個隨機字串隱藏到頁面中,第三方站點受到同源策略的限制無法獲得。
3.對請求頭中的Referer欄位或其他自定義欄位進行驗證。