CSRF 跨站請求偽造 學習總結

2022-01-10 20:59:58 字數 2288 閱讀 8321

參考大佬的文章,附上位址

csrf,中文名字,跨站請求偽造,聽起來是不是和xss差不多?區別就在於,

csrf

並沒有盜取

cookie

而是直接利用。通俗的來說,就是攻擊者盜用了你的身份,在你不知情的情況下執行一些違法操作,比如密碼修改,增加管理員,轉賬等敏感操作,危害很大。

開啟dvwa,選擇csrf,先從最低級別的low開始,檢視源**

<?php 

if( isset( $_get[ 'change'] ) )

else

((is_null($___mysqli_res = mysqli_close($globals["___mysqli_ston"]))) ? false : $___mysqli_res);}

?>

通過檢視發現,**中,password_new,password_conf,兩個引數沒有做任何防護,這樣是相當危險的,如果攻擊者對受害者的這套程式很熟悉,可以很輕易的構造鏈結,只要攻擊者一點選這個鏈結,就會觸發csrf攻擊。這是dvwa修改密碼的鏈結   受害者只要帶登陸情況下點選這個鏈結(同一瀏覽器),密碼就會被修改為12345678,不過這鏈結一看就是改密碼的,基本不會有人點,所以需要咱們精心構造一下,這裡以burpsuite演示。進去修改密碼頁面,抓包。

點選generate csrf poc burp會構造簡單的乙個頁面,如圖

接下來,將構造的**複製到瀏覽器,就會有乙個按鈕,使用者點選就會觸發csrf攻擊,密碼被修改。

不過這個做法也有些粗糙,點選完,會自動跳轉到,密碼修改的頁面,受害者就知道密碼被修改,

參考上面提到的文章裡面的思路,那就是隱藏img src 標籤,再可以精心構造乙個錯誤頁面,讓受害者認為這是乙個無效的url,但已經進行了csrf攻擊。構造的**如下

<

img

src=""

border

="0"

style

="display:none;"

/>

<

h1>404<

h1>

<

h2>file not found.<

h2>

下面看一下中級的dvwa部分源**截圖,看做了什麼防禦。

可以看到,中

級別的**檢查了保留變數

包頭的referer

引數的值,表示**位址)中是否包含

包頭的host

引數,及要訪問的主機名)抓包看一下,通俗的講,不在本域的請求,就會拒絕訪問。

那該如何繞過呢,這個,只需要將咱們構造的頁面名字改為受害者的主機名即可,如上圖,至於要將名字改為 www.test.com.html,就可以繞過啦。

http頭中有乙個referer欄位,這個字段用以標明請求**於哪個位址。在處理敏感資料請求時,通常來說,referer欄位應和請求的位址位於同一網域名稱下。但是這樣的方式,也是不安全的,上文中已經講解了,如何繞過referer欄位的檢查。

由於csrf的本質在於攻擊者欺騙使用者去訪問自己設定的位址,所以如果要求在訪問敏感資料請求時,要求使用者瀏覽器提供不儲存在cookie中,並且攻擊者無法偽造的資料作為校驗,那麼攻擊者就無法再執行csrf攻擊。這種資料通常是窗體中的乙個資料項。伺服器將其生成並附加在窗體中,其內容是乙個偽隨機數。當客戶端通過窗體提交請求時,這個偽隨機數也一併提交上去以供校驗。正常的訪問時,客戶端瀏覽器能夠正確得到並傳回這個偽隨機數,而通過csrf傳來的欺騙性攻擊中,攻擊者無從事先得知這個偽隨機數的值,服務端就會因為校驗token的值為空或者錯誤,拒絕這個可疑請求。

在這種情況下,攻擊者在不知道原密碼的情況下是無法進行csrf攻擊的。

跨站請求偽造 CSRF

跨站請求偽造 csrf 顧名思義就是在其他非法 呼叫了正常 的介面,攻擊的方法是在頁面中包含惡意 或者鏈結,攻擊者認為被攻擊的使用者有權訪問另乙個 如果使用者在那個 的會話沒有過期,攻擊者就能執行未經授權的操作。大多數 rails 程式都使用 cookie 儲存會話,可能只把會話 id 儲存在 co...

CSRF跨站請求偽造

前面說到xss跨站指令碼攻擊,現在來個複雜度更高一點的csrf跨站請求偽造 首先說一下rsrf的幾個要點 1.rsrf是通過各種方法 站內發布鏈結,qq郵箱發布鏈結等 讓登入使用者觸發請求,在使用者不覺察的過程中對使用者資料進行篡改,進而實現攻擊 2.通過xss可以獲取到使用者的session id...

CSRF 跨站請求偽造

csrf cross site request forgery 中文是跨站請求偽造。csrf攻擊者在使用者已經登入目標 之後,誘使使用者訪問乙個攻擊頁面,利用目標 對使用者的信任,以使用者身份在攻擊頁面對目標 發起偽造使用者操作的請求,達到攻擊目的。舉個列子 假如a站為受信任的銀行 其中有個銀行轉賬...