滲透測試之CSRF漏洞攻擊

一:概念

CSRF跨站點請求僞造(Cross—Site Request Forgery)。你這可以這麼理解CSRF攻擊:攻擊者盜用了你的身份,以你的名義發送惡意請求。CSRF能夠做的事情包括:以你名義發送郵件,發消息,盜取你的賬號,甚至於購買商品,虛擬貨幣轉賬......造成的問題包括:個人隱私泄露以及財產安全。

二: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的惡意代碼被執行。 

三:例子

CSRF攻擊的主要目的是讓用戶在不知情的情況下攻擊自己已登錄的一個系統,類似於釣魚。如用戶當前已經登錄了郵箱,或bbs,同時用戶又在使用另外一個,已經被你控制的站點,我們姑且叫它釣魚網站。這個網站上面可能因爲某個圖片吸引你,你去點擊一下,此時可能就會觸發一個js的點擊事件,構造一個bbs發帖的請求,去往你的bbs發帖,由於當前你的瀏覽器狀態已經是登陸狀態,所以session登陸cookie信息都會跟正常的請求一樣,純天然的利用當前的登陸狀態,讓用戶在不知情的情況下,幫你發帖或幹其他事情。

四:檢測CSRF漏洞

抓取一個正常請求的數據包,去掉Referer字段後再重新提交,如果該提交還有效,那麼基本上可以確定存在CSRF漏洞。

專門針對CSRF漏洞進行檢測的工具,如CSRFTester,CSRF Request Builder等。

五:CSRF防禦

  • 通過 referer、token 或者 驗證碼 來檢測用戶提交。
  • 儘量不要在頁面的鏈接中暴露用戶隱私信息。
  • 對於用戶修改刪除等操作最好都使用post 操作 。
  • 避免全站通用的cookie,嚴格設置cookie的域。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章