目錄
一、📖什么是CSRF
二、🔗漏洞利用過程
三、📑漏洞的前提條件
四、🔍常見漏洞發生位置
五、?CSRF挖掘技巧
(一) 抓正常請求包進行初步判斷
(二) Referer 繞過驗證測試
(三) Token 缺失與二次驗證缺失識別
六、??漏洞危害
七、🔒CSRF漏洞防御
一、📖什么是CSRF
CSRF(Cross-Site Request Forgery)是指攻擊者誘導用戶在已登錄某網站的情況下,執行非本意的操作(如轉賬、改密碼等)。它依賴于用戶已登錄狀態下瀏覽器自動攜帶 Cookie 的特性。
二、🔗漏洞利用過程
- 攻擊者發現目標網站存在 CSRF 漏洞,關鍵操作接口未對請求來源進行身份校驗。
- 攻擊者構造包含惡意請求的 Payload(如自動提交的表單、惡意圖片、JS 腳本等),并嵌入到釣魚網頁或第三方平臺。
- 通過社交工程手段(如釣魚郵件、社交消息、偽裝廣告等)引導用戶點擊該頁面或鏈接。
- 用戶在已登錄目標網站(如銀行)且持有有效 Cookie 的情況下訪問該惡意頁面,瀏覽器自動攜帶 Cookie 發起請求。
- 如果目標網站未對請求來源進行驗證,則會誤以為該請求是用戶主動發起的。
- 請求被成功執行,導致敏感操作被觸發(如轉賬、修改信息、授權操作等),用戶在毫無察覺的情況下被攻擊。
三、📑漏洞的前提條件
- ?用戶登錄了目標網站,并且登錄狀態仍然有效(如 Cookie 未失效)
- ?網站對關鍵操作的請求沒有做身份校驗
- ?用戶能被引誘點擊惡意鏈接或訪問惡意頁面
- ?網站使用 Cookie 認證,而非 Token認證方式
四、🔍常見漏洞發生位置
- 修改用戶信息:如郵箱、密碼、綁定手機
- 金融交易類接口:如轉賬、支付、充值
- 內容發布/刪除:如發帖、刪除評論、點贊
- 管理員操作接口:如添加用戶、授權、配置
五、?CSRF挖掘技巧
(一) 抓正常請求包進行初步判斷
抓取關鍵操作(如POST)的正常請求包:
- 若缺少 Referer / Origin 字段;
- 且請求中無明顯 CSRF Token 或防偽參數(如
_csrf
,token
,authenticity_token
),
👉 則接口極有可能存在 CSRF 漏洞。
(二) Referer 繞過驗證測試
請求中即使存在 Referer 字段,也可進行偽造測試:
- 使用 Burp 修改 Referer 為第三方域名,或直接刪除;
- 若服務端仍返回 200 正常響應并執行業務操作,
👉?基本可以確認該接口未校驗請求來源,存在 CSRF 風險。
(三) Token 缺失與二次驗證缺失識別
在表單提交、按鈕操作、GET 請求等處:
- 若用戶操作無 CSRF Token 校驗機制;
- 且未引入驗證碼 / 二次確認彈窗 / 圖形驗證等二次驗證措施,
👉 該接口高概率可被構造 CSRF Payload。
六、??漏洞危害
- 被利用執行敏感操作(如轉賬、改密碼)
- 賬戶被篡改、信息泄露
- 管理員權限被下發
- 業務被濫用(如刷積分、批量點贊)
- 信任損失、法律風險等內容
七、🔒CSRF漏洞防御
- 添加驗證碼/密碼
- 打斷請求的自動化流程,用戶主動交互,防止CSRF自動執行敏感操作。
- 雙重Cookie驗證
- 通過比較Cookie和請求參數中的值,驗證請求合法性。
- 使用CSRF Token
- Token是隨機會話特定的,攻擊者難以預測或偽造。
- 檢查Referer頭
- 通過驗證請求來源,確保請求來自合法域名(參考同源策略)。
- 使用SameSite Cookie屬性
- 限制Cookie在跨站請求中的發送,防止偽造請求。