跨站請求偽造(CSRF)


CSRF攻擊迫使經過身份驗證的使用者(受害者)傳送偽造的HTTP請求,包括受害者的對談cookie到易受攻擊的Web應用程式,這允許攻擊者強制受害者的瀏覽器生成請求,以便易受攻擊的應用程式感知來自受害者。

我們下面來了解這個漏洞的威脅代理,攻擊向量,安全弱點,技術影響和業務影響。

  • 威脅代理 - 任何人都可以將內容載入到使用者的瀏覽器中,從而迫使他們向您的網站提交請求。
  • 攻擊者的方法 - 攻擊者建立偽造的http請求並欺騙受害者通過影象標籤,xss或其他許多技術提交它們。
  • 安全弱點 - CSRF利用了大多數Web應用程式允許攻擊者預測特定操作的所有細節。
  • 如何發現缺陷 - 通過滲透測試或程式碼分析檢測CSRF缺陷相當容易。
  • 技術影響 - 攻擊者可以誘騙受害者執行受害者有權執行的任何狀態更改操作。
  • 業務影響 - 對您的聲譽的影響,想象不確定使用者是否打算採取這些行動。

範例

下面是CSRF的典型例子 -

第1步 - 易受攻擊的應用程式將狀態更改請求作為純文字傳送而不進行任何加密。

http://bankx.com/app?action=transferFund&amount=3500&destinationAccount=4673243243

第2步 - 現在,駭客通過將請求嵌入到儲存在攻擊者控制下的各個站點上的影象中,構建一個將受害者帳戶的錢轉移到攻擊者帳戶的請求 -

<img src = "http://bankx.com/app?action=transferFunds&amount=14000&destinationAccount=attackersAcct#" 
   width = "0" height = "0" />

手動實踐

第1步 - 我們通過將Java指令碼嵌入到影象中來執行CSRF偽造。下面列出了問題。

第2步 - 現在需要模擬轉換為1x1影象並讓受害者點選相同的影象。

第3步 - 提交訊息後,訊息將顯示如下顯示。

第4步 - 現在,如果受害者點選以下URL,則執行傳輸,可以使用burp套件攔截使用者操作。可以通過在Get訊息中找到轉移來檢視轉移,如下所示 -

第5步 - 現在點選重新整理後,將顯示課程完成標記。

預防機制

  • 可以通過在隱藏欄位中建立唯一標記來避免CSRF,該標記將在HTTP請求的主體中傳送,而不是在更容易暴露的URL中傳送。
  • 強制使用者重新驗證或證明他們是使用者以保護CSRF。例如:驗證碼圖。