【轉】WEB安全系列之五:跨站請求偽造
* 跨站請求偽造漏洞利用的重點攻擊者了解受害者所在的站點
* 跨站請求偽造漏洞的技術重點在于攻擊者需要精心構造可以完成目標裝點數據修改的URL
* 跨站請求偽造漏洞的方法重點在于攻擊者的目標站點具有持久化授權cookie或者受害者具有當前會話cookie,并且目標站點沒有對用戶在網站行為的第二授權
我們假定三個角色:攻擊者、用戶、網上銀行、一個論壇。
攻擊的流程主要分以下幾個步驟:
1、用戶連入網上銀行操作,該網上銀行使用持久化授權cookie,只要用戶不清除cookies,任何時候連入網上銀行時,該銀行網站都認為該用戶是有效的;
2、攻擊者在論壇上發表圖片,內嵌有GET或POST方法的URL并指向該網上銀行,如果該URL由一個銀行的合法用戶發出,則該URL會使用戶帳戶被修改;
3、用戶瀏覽此論壇并點擊該圖片,攻擊者預設的URL被由用戶發往銀行站點,因該用戶未清除cookie,該請求有效,用戶帳戶在用戶并不知情的前提下被成功修改。
我們注意到,這個過程很象跨站腳本攻擊,但實際上,是完全不同的。跨站腳本攻擊需要在客戶端寫入惡意代碼,以搜集cookie等信息,而跨站請求偽造則根本不需要向用戶端寫入任何東西,直接利用銀行授權的持久認證和用戶未清理的cookie。
這里的問題在于,論壇用戶不能上傳js腳本,于是直接利用URL來誘騙用戶,以致于完成數據操作。
由此可見,該攻擊的重點在于要知道目標站點和目標用戶,并且該受害站點沒有使用更多的授權認證。
對于web站點,將持久化的授權方法(例如cookie或者HTTP授權)切換為瞬時的授權方法(在每個form中提供隱藏field),這將幫助網站防止這些攻擊。一種類似的方式是在form中包含秘密信息、用戶指定的代號作為cookie之外的驗證。
另一個可選的方法是“雙提交”cookie。此方法只工作于Ajax請求,但它能夠作為無需改變大量form的全局修正方法。如果某個授權的 cookie在form post之前正被java script代碼讀取,那么限制跨域規則將被應用。如果服務器需要在Post請求體或者URL中包含授權cookie的請求,那么這個請求必須來自于受信任的域,因為其它域是不能從信任域讀取cookie的。
* 跨站請求偽造漏洞的技術重點在于攻擊者需要精心構造可以完成目標裝點數據修改的URL
* 跨站請求偽造漏洞的方法重點在于攻擊者的目標站點具有持久化授權cookie或者受害者具有當前會話cookie,并且目標站點沒有對用戶在網站行為的第二授權
我們假定三個角色:攻擊者、用戶、網上銀行、一個論壇。
攻擊的流程主要分以下幾個步驟:
1、用戶連入網上銀行操作,該網上銀行使用持久化授權cookie,只要用戶不清除cookies,任何時候連入網上銀行時,該銀行網站都認為該用戶是有效的;
2、攻擊者在論壇上發表圖片,內嵌有GET或POST方法的URL并指向該網上銀行,如果該URL由一個銀行的合法用戶發出,則該URL會使用戶帳戶被修改;
3、用戶瀏覽此論壇并點擊該圖片,攻擊者預設的URL被由用戶發往銀行站點,因該用戶未清除cookie,該請求有效,用戶帳戶在用戶并不知情的前提下被成功修改。
我們注意到,這個過程很象跨站腳本攻擊,但實際上,是完全不同的。跨站腳本攻擊需要在客戶端寫入惡意代碼,以搜集cookie等信息,而跨站請求偽造則根本不需要向用戶端寫入任何東西,直接利用銀行授權的持久認證和用戶未清理的cookie。
這里的問題在于,論壇用戶不能上傳js腳本,于是直接利用URL來誘騙用戶,以致于完成數據操作。
由此可見,該攻擊的重點在于要知道目標站點和目標用戶,并且該受害站點沒有使用更多的授權認證。
對于web站點,將持久化的授權方法(例如cookie或者HTTP授權)切換為瞬時的授權方法(在每個form中提供隱藏field),這將幫助網站防止這些攻擊。一種類似的方式是在form中包含秘密信息、用戶指定的代號作為cookie之外的驗證。
另一個可選的方法是“雙提交”cookie。此方法只工作于Ajax請求,但它能夠作為無需改變大量form的全局修正方法。如果某個授權的 cookie在form post之前正被java script代碼讀取,那么限制跨域規則將被應用。如果服務器需要在Post請求體或者URL中包含授權cookie的請求,那么這個請求必須來自于受信任的域,因為其它域是不能從信任域讀取cookie的。
posted on 2010-04-14 14:40 小默 閱讀(585) 評論(0) 編輯 收藏 引用 所屬分類: Security