我一直在研究OWASP的建議以防止CSRF攻擊(https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet)。同步器令牌模式:它如何防止XSS和CSRF的組合?
現在,我不明白的是,這將如何防止結合了XSS和CSRF攻擊的攻擊。比方說,我們有以下的攻擊情形:
攻擊者可以執行存儲XSS攻擊,使得被執行的網站,攻擊者插入腳本每次用戶訪問的頁面。
該腳本將完全重新設計DOM,例如用戶需要提供一些不相關信息的原始表單,攻擊者的腳本將重新設計它,以便將此表單重新設計爲表單,其中用戶使用管理員特權被添加。請注意,用戶不會看到這一點,因爲這些字段的標籤將保持不變。只有POST會有所不同。
攻擊者知道該網站使用反CSRF令牌。看看OWASP的建議:'(..)應用程序應該包含一個隱藏的輸入參數,並帶有一個通用名稱,例如「CSRFToken」,攻擊者知道大多數網站都會有一個隱藏字段,並在頁面某處顯示該ID。
攻擊者確保此字段的值也在僞POST中提交。即使攻擊者不知道此隱藏字段的值,它也可以在POST中指定該值應與請求一起發送。這是可能的,因爲用戶的DOM已被修改,請求將來自用戶的瀏覽器,用戶的Cookie也將隨請求一起發送。
用戶提交表單,並創建假用戶。
在我看來,這不能僅通過使用CSRF令牌來防止。或者是XSS攻擊已被中和的同步模式的隱含假設?
是不是在OWASP文章中特別提到的文章5.沒有跨站點腳本的惡意? – Erlend
是的,這是正確的。我錯過了那一節。 – Michael