虛擬測試:
攻擊者想通過自己的微博劫持并登錄受害人的賬戶
如上圖所示,正常的授權(quán)流程,用戶點擊授權(quán)后便不再可控,剩下的工作由第三方應(yīng)用和授權(quán)服務(wù)器(資源提供方)進行交互來完成。而攻擊者可以阻止授權(quán)流程的正常進行,將中間的關(guān)鍵URL截取下來,誘騙用戶訪問,成功后可以將受害人的賬戶綁定到攻擊者的微博賬戶上。此后,攻擊者可以使用微博的賬戶自由登入受害人的主站賬戶及瀏覽器賬戶,任意查看和修改用戶的隱私數(shù)據(jù)。
受到OAuth2 CSRF漏洞影響的部分網(wǎng)站列表(測試后):
知道創(chuàng)宇安全研究團隊對于OAuth2 CSRF漏洞防御,建議如下:
1)對于開發(fā)人員:
1,授權(quán)過程中傳遞state隨機哈希值,并在服務(wù)端進行判斷。
2,在綁定過程中,應(yīng)強制用戶重新輸入用戶名密碼確認綁定,不要直接讀取當前用戶session進行綁定。
3,限制帶有Authorization code參數(shù)的請求僅能使用一次(避免重放攻擊)
4,推薦使用Authorization Code方式進行授權(quán),而不要使用Implicit Flow方式。這樣access token會從授權(quán)服務(wù)器以響應(yīng)體的形式返回而不會暴露在客戶端。
2)對于普通用戶:
定期查看重要網(wǎng)站的第三方帳號綁定頁面,檢查是否有陌生的其他帳號綁定到自身賬戶,如果發(fā)現(xiàn)應(yīng)立即取消綁定或授權(quán)。