嘗試偽造合法token值繞過CSRF


token概述

token是為了防止csrf而衍生的技術。黑客可以通過xss來獲取用戶的cookie,理論上也能獲取當時頁面上的token值,但是也僅僅是當時頁面上的token值,如果與用戶進行其他頁面的跳轉從而獲取新的token值,xss是無法獲取的。因此,有效地防范了csrf,但是能否偽造一個我們所需要的token值,配合xss獲取的cookie值進行我們想要的操作。

實驗猜想

如下場景

1)在更改密碼的界面上存在隨機token,但是該頁面上不存在xss漏洞。

2)通過其他頁面利用xss漏洞獲取用戶的cookie

3)然后惡意用戶在 修改密碼頁面 獲取的token值配合獲取的cookie進行數據的提交操作(偽造的token也是通過對服務器的合法請求)

4)如果隨機的token不與cookie進行綁定存儲的話,理論上可以達到偽造token的行為

環境准備

1)phpstudy2016

2)DVWA :CSRF(high)

3)准備兩個用戶

賬號類型 賬號 密碼
正常用戶 admin 123456
惡意用戶 1337 charley

操作過程

1)正常用戶更改密碼,但是提交錯誤的token

正常的token

image-20220105145840159

更改token

image-20220105145917720

舊密碼能夠正常登陸,證明修改密碼行為失敗,只有合法的token才能正常修改用戶密碼。

2)嘗試偽造token,提交表單數據

正常用戶的隨機token值

81110ab1eee400821304d1e7a2b56575

惡意用戶的隨機token值

410db2df5528bdb4804813e0c887dc2b

3)將正常用戶的token進行更改,用偽造的token進行覆蓋(等同於:惡意用戶獲取正常用戶的cookie配合自己偽造的token提交)

image-20220105150410688

4)密碼更改成功,證明偽造的token可用

image-20220105151029632

總結

token應用需要注意:

1)綁定cookie與隨機token,防止上述情況的發生

2)約束token的時效性,防止偽造的token可以一直使用,或未使用但長期貯存等待使用


免責聲明!

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



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