CSP簡介
Content Security Policy(CSP),內容(網頁)安全策略,為了緩解潛在的跨站腳本問題(XSS攻擊),瀏覽器的擴展程序系統引入了內容安全策略(CSP)這個概念。
CSP 的實質就是白名單制度,開發者明確告訴客戶端,哪些外部資源可以加載和執行,等同於提供白名單。它的實現和執行全部由瀏覽器完成,開發者只需提供配置。
兩種方法啟用 CSP
一種是通過 HTTP 響應頭信息的Content-Security-Policy字段。
一種是通過網頁的標簽。
<meta http-equiv="Content-Security-Policy" content="script-src 'self'; object-src 'none'; style-src example.org third-party.org; child-src https:">
script-src:腳本:只信任當前域名
object-src:不信任任何URL,即不加載任何資源
style-src,樣式表:只信任example.org和third-party.org
child-src:必須使用HTTPS協議加載。這個已從Web標准中刪除,新版本瀏覽器可能不支持。
其他資源:沒有限制其他資源
Low級別
從請求的response包中可以看到,content-security-policy策略只允許加載當前域名以及 pastebin.com example.com 等域名的。
直接去pastebin中寫一個腳本,輸入提交即可。
Medium級別
需要script指定nonce
'unsafe-inline' 代表可以執行諸如 onclick 等事件或 script 標簽內的內容這類 javascript
后者是指如果你要使用 script 標簽加載 javascript, 你需要指明其 nonce 值,比如
<script nonce="TmV2ZXIgZ29pbmcgdG8gZ2l2ZSB5b3UgdXA=">alert('hacked')</script>
將上方代碼輸入輸入框即可
High級別
構造 Payload
<script src="source/jsonp.php?callback=alert('hacked');"></script>
原文:https://blog.csdn.net/weixin_42555985/article/details/88382976