csrf(cross-site request forgery)跨站請求偽造,由於目標站無token/referer限制,導致攻擊者可以使用者的身份完成操作達到各種目的簡單來說,乙個介面url被訪問時,後台沒有對呼叫者進行認證,或者認證為授權使用者,但其實是攻擊者偽造的請求(比如請求中通過uid這樣的簡單引數分別使用者,攻擊者可以獲取到uid之後可以在自己的訪問中新增uid引數,後台不能識別是不是真的該使用者的操作)。csrf攻擊是源於web的隱式身份驗證機制!web的身份驗證機制雖然可以保證乙個請求是來自於某個使用者的瀏覽器,但卻無法保證該請求是使用者批准傳送的!
複雜一點點地說,使用者在訪問某正常**a時候獲得授權的cookie,並且未過期,這時候他再開啟乙個包含了攻擊**的網頁,這個網頁偷偷地呼叫了a的介面,由於該使用者使用的是自己的瀏覽器並且授權未過期,那麼這個攻擊網頁中的惡意**就可以成功呼叫**a的介面,並且使用者完全不知道。
**是通過cookie來識別使用者的,當使用者成功進行身份驗證之後瀏覽器就會得到乙個標識其身份的cookie,只要不關閉瀏覽器或者退出登入,以後訪問這個**會帶上這個cookie。如果這期間瀏覽器被人控制著請求了這個**的url,可能就會執行一些使用者不想做的功能(比如修改個人資料)。因為這個不是使用者真正想發出的請求,這就是所謂的請求偽造;因為這些請求也是可以從第三方**提交的,所以字首跨站二字。
檢測csrf漏洞是一項比較繁瑣的工作,最簡單的方法就是抓取乙個正常請求的資料報,去掉referer欄位後再重新提交,如果該提交還有效,那麼基本上可以確定存在csrf漏洞。token隨著對csrf漏洞研究的不斷深入,不斷湧現出一些專門針對csrf漏洞進行檢測的工具,如csrftester,csrf request builder等。
以csrftester工具為例,csrf漏洞檢測工具的測試原理如下:使用csrftester進行測試時,首先需要抓取我們在瀏覽器中訪問過的所有鏈結以及所有的表單等資訊,然後通過在csrftester中修改相應的表單等資訊,重新提交,這相當於一次偽造客戶端請求。如果修改後的測試請求成功被**伺服器接受,則說明存在csrf漏洞,當然此款工具也可以被用來進行csrf攻擊。
在頁面表單中新增乙個隱藏的隨機值引數token,表單提交到後台後,伺服器對該值進行校驗,確認該請求確實是由使用者發出的。由於攻擊者不知道token,因此無法構造出合法的請求進行攻擊。
驗證碼…***
檢測refer
通過檢查referer的值,我們就可以判斷這個請求是合法的還是非法的,但是問題出在伺服器不是任何時候都能接受到referer的值,所以refere check 一般用於監控csrf攻擊的發生,而不用來抵禦攻擊。
這個星期被安排學習spring security,裡面就有防止csrf攻擊的功能,後面再記錄。
csrf-攻擊與防禦
csrf簡單介紹及利用方法
**csrf攻擊方式
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站為受信任的銀行 其中有個銀行轉賬...