csrf漏洞防禦方案 Web滲透測試 CSRF

2021-10-12 19:16:34 字數 2634 閱讀 8910

跨站請求偽造(cross site request forgery,csrf)

hacker ⽤戶可以偽造admin ⽤戶的轉賬請求,強制admin ⽤戶,轉賬給任意⽤戶。

基本概念

csrf 是⼀種攻擊,它強制終端⽤戶在當前對其進⾏身份驗證後的web 應⽤程式上執⾏⾮本意操作的攻擊。

csrf 攻擊的重點在於更改狀態的請求,⽽不是盜取資料,因為攻擊者⽆法檢視偽造請求的響應。

借助於社⼯的⼀些幫助,例如,通過電⼦郵件或聊天傳送鏈結,攻擊者可以誘騙⽤戶執⾏攻擊者選擇的操作。如果受害者是普通⽤戶,則成功的csrf 攻擊可以強制⽤戶執⾏更改狀態的請求,例如轉移資⾦、修改密碼等操作。如果受害者是管理賬戶,csrf 攻擊會危及整個web 應⽤程式。

關鍵點

受害者沒有退出登入。

csrf 是⼀種欺騙受害者提交惡意請求的攻擊。它繼承了受害者的身份和特權,代表受害者執⾏⾮本意的、惡意的操作。

對於⼤多數站點,瀏覽器請求會⾃動傳送與站點關聯的所有憑據,例如⽤戶的會話cookie,ip 位址,windows 域憑據等。因此,如果⽤戶已對當前站點進⾏了身份驗證,則該站點沒有辦法區分⼀個請求是受害者傳送的合法請求還是攻擊者偽造受害者身份傳送的⾮法請求。

csrf 的場景復現

模擬銀⾏⽹站

chrome/firefox/360極速版,三個不同瀏覽器使用不同賬戶登入:

hacker/123456
惡意⽹站

構造csrf 攻擊連線

get方式:

通過使用者被切換為hacker了)。

csrf 場景建模

post方式:

寶⼑在⼿,誰與爭鋒

與xss 漏洞相結合攻擊者可以利⽤xss 觸發csrf 攻擊。因為,可以利⽤js 傳送http 請求。

經過研究受害⽹站的業務流程,可以構造如下**:

惡意**觸發,建立了wenxin/123456賬戶!

csrf 漏洞的防禦

⽆效的防禦

使⽤秘密的cookie(直接就可以使用了,無需解密)

僅接收post 請求

多步交易

多步交易,有可能會被惡意攻擊者**。
url 重寫

⽤戶的身份資訊會暴露在url 中不建議通過引⼊另外⼀個漏洞來解決當前漏洞
https

所有安全機制的前提
有效的防禦

驗證 referer 字段

當前url 的上⼀個url是否可以偽造?
新增token 驗證

⼀串隨機字串每⼀次客戶端的請求,伺服器都要重新整理token伺服器建立了⼀個token 值,儲存在伺服器中並且下發到瀏覽器下次瀏覽器請求,需要提交該token 值,伺服器根據瀏覽器提交的token 與伺服器中儲存的token進⾏⽐對如果⼆者⼀致,說明請求是正常業務流程。如果⼆者不⼀致,說明請求有可能來⾃於惡意的攻擊者。token 的設計,在php 中通常利⽤session 機制來實現。
⼆次驗證

在關鍵操作之前,再輸⼊密碼或者驗證碼。

web滲透 xss防禦

1 使用xss filter 作用 過濾使用者 客戶端 提交的有害資訊,從而達到 防範xss攻擊的效果 1 輸入過濾 永遠不要相信使用者的輸入 是 開發的基本常識 對於使用者輸入一點要多次深入過濾 輸入驗證 輸入驗證就是對使用者提交的資訊進行有效驗證 僅接受指定長度範圍內的,採用適當格式的內容提交 ...

web安全 CSRF(防禦篇)

csrf防禦之驗證碼 目前,驗證碼被認為是對抗csrf攻擊最簡單有效的防禦措施。用到驗證碼就是在請求過程中強制使用者與應用進行互動,但是乙個站點 乙個好的產品要考慮到使用者的體驗,顯然如果在所有的操作上都加入驗證碼對使用者來說就很不友好。因此驗證碼只能是一種防禦csrf攻擊的輔助手段,並不能成為主要...

web安全 CSRF漏洞

描述 跨站點偽裝請求 csrf 漏洞會在以下情況下發生 1.web 應用程式使用會話 cookie。2.應用程式未驗證請求是否經過使用者同意便處理 http 請求。nonce 是隨訊息一起傳送的加密隨機值,可防止 replay 攻擊。如果該請求未包含證明其 的 nonce,則處理該請求的 將易受到 ...