csrf跨站請求偽造

2021-09-25 04:07:44 字數 1367 閱讀 6349

什麼是csrf(xsrf)?

csrf概念:csrf跨站點請求偽造(cross—site request forgery),跟xss攻擊一樣,存在巨大的危害性,你可以這樣來理解:攻擊者盜用了你的身份,以你的名義傳送惡意請求,對伺服器來說這個請求是完全合法的,但是卻完成了攻擊者所期望的乙個操作,比如以你的名義傳送郵件、發訊息,盜取你的賬號,新增系統管理員,甚至於購買商品、虛擬貨幣轉賬等。 如下:其中web a為存在csrf漏洞的**,web b為攻擊者構建的惡意**,user c為web a**的合法使用者。

csrf攻擊攻擊原理及過程如下:

1. 使用者c開啟瀏覽器,訪問受信任**a,輸入使用者名稱和密碼請求登入**a;

2.在使用者資訊通過驗證後,**a產生cookie資訊並返回給瀏覽器,此時使用者登入**a成功,可以正常傳送請求到**a;

3.使用者未退出**a之前,在同一瀏覽器中,開啟乙個tab頁訪問**b;

4.**b接收到使用者請求後,返回一些攻擊性**,並發出乙個請求要求訪問第三方站點a;

5.瀏覽器在接收到這些攻擊性**後,根據**b的請求,在使用者不知情的情況下攜帶cookie資訊,向**a發出請求。**a並不知道該請求其實是由b發起的,所以會根據使用者c的cookie資訊以c的許可權處理該請求,導致來自**b的惡意**被執行。

受害者 bob 在銀行有一筆存款,通過對銀行的**傳送請求 可以使 bob 把 1000000 的存款轉到 bob2 的賬號下。通常情況下,該請求傳送到**後,伺服器會先驗證該請求是否來自乙個合法的 session,並且該 session 的使用者 bob 已經成功登陸。

黑客 mallory 自己在該銀行也有賬戶,他知道上文中的 url 可以把錢進行轉帳操作。mallory 可以自己傳送乙個請求給銀行:但是這個請求來自 mallory 而非 bob,他不能通過安全認證,因此該請求不會起作用。 這時,mallory 想到使用 csrf 的攻擊方式,他先自己做乙個**,在**中放入如下**: src=」 」,並且通過廣告等誘使 bob 來訪問他的**。當 bob 訪問該**時,上述 url 就會從 bob 的瀏覽器發向銀行,而這個請求會附帶 bob 瀏覽器中的 cookie 一起發向銀行伺服器。大多數情況下,該請求會失敗,因為他要求 bob 的認證資訊。但是,如果 bob 當時恰巧剛訪問他的銀行後不久,他的瀏覽器與銀行**之間的 session 尚未過期,瀏覽器的 cookie 之中含有 bob 的認證資訊。這時,悲劇發生了,這個 url 請求就會得到響應,錢將從 bob 的賬號轉移到 mallory 的賬號,而 bob 當時毫不知情。等以後 bob 發現賬戶錢少了,即使他去銀行查詢日誌,他也只能發現確實有乙個來自於他本人的合法請求轉移了資金,沒有任何被攻擊的痕跡。而 mallory 則可以拿到錢後逍遙法外。

django 處理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站為受信任的銀行 其中有個銀行轉賬...