02.23 Web攻擊(續)

Cookie簡介

HTML是無狀態的,所以Web交互的狀態和授權信息一般保持在Cookie中,Cookie是HTML協議頭的一個字段,一般在請求報文中會攜帶該信息。

Cookie一般攜帶有會話信息,有的Cookie裡直接攜帶用戶名,密碼等信息,取決於網站開發人員的安全意識。

常見Cookie攻擊方式

信息洩露:例如直接保護用戶名,密碼信息。

Cookie篡改:例如Cookie:enable = 0;表示某個功能無權限,把0修改為1則具備權限。

Cookie劫持:用攻擊對象的Cookie來發起請求。

Cookie回放:通過回放工具,多次回放請求。

Cookie攻擊防禦

Cookie加密:防止Cookie信息洩露,防止Cookie篡改。

Cookie簽名:加源IP簽名可防止Cookie劫持,可一定程度上防止Cookie回放。

回放攻擊:是指攻擊者發送一個目的主機已接收過的包,來達到欺騙系統的目的,主要用於身份認證過程,破壞認證的正確性。

防重放攻擊:重放攻擊提交給服務器的數據是曾經有效的,如何防止這種數據,對特定信息給予一個特定的隨機數,並且這個隨機數保存在服務器內,在驗證了用戶信息前,首先會對隨機數進行驗證,如果發現提交的隨機數和服務器保存的不同,則該條信息無效,通過這種方法來防止重放攻擊。

Cookie的HttpOnly屬性設置:可以防止Cookie被瀏覽器腳本讀取,可降低Cookie洩漏的風險。

Cookie的Secure屬性設置:使得客戶端瀏覽器只有在HTTPS訪問的情況下才會提交Cookie,提高了客戶端提交Cookie傳輸過程的安全性。

CSRF攻擊

CSRF(跨站請求偽造):攻擊者盜用了你的身份,以你的名義發送惡意請求,對服務器來說這個請求是完全合法的,但是卻完成了攻擊者所期望的一個操作,比如以你的名義發送郵件、發消息等。

舉個例子:

Web攻擊(續)

CSRF攻擊

從上圖可以看出,要完成一次CSRF 攻擊,受害者必須依次完成兩個步驟:

  • 登錄受信任網站A,並在本地生成Cookie
  • 在不登出A 的情況下,訪問危險網站B

CSRF攻擊檢測與防禦

檢測Referer方法:

Referer是HTTP協議頭的一個字段,表示HTTP請求的來源頁面。指定Referer可以防止一部分CSRF攻擊,但Referer可以偽造,所以一般還要加上防止Referer偽造的機制。

驗證碼方法:

添加驗證碼目的是在用戶和網站交互過程中添加個“可見”環節,提醒用戶是否是有效的請求。


分享到:


相關文章: