CSP指的是内容安全策略,为了缓解很大一部分潜在的跨站脚本问题,浏览器的扩展程序系统引入了内容安全策略(CSP)的一般概念。这将引入一些相当严格的策略,会使扩展程序在默认情况下更加安全,开发者可以创建并强制应用一些规则,管理网站允许加载的内容。
csp 以白名单的机制对网站加载或执行的资源起作用。在网页中,这样的策略通过 HTTP 头信息或者 meta 元素定义。
这些漏洞都不是CSP中的实际漏洞,它们是其实施方式中的漏洞。
LOW
检查策略以查找可用于托管外部脚本文件的所有源。
Spoiler: Scripts(脚本) can be included from Pastebin, try storing some JavaScript on there and then loading it in.
1,前往Pastebin.com - #1 paste tool since 2002!
2,注册登录
3,输入alert(1),生成新粘粘。
4,点击raw,出现这个,复制此URL
5,把该链接发送给受害者,点击。本应该实现注入,不过我没成功。
MEDIUM
$headerCSP = "Content-Security-Policy: script-src 'self' 'unsafe-inline' 'nonce-TmV2ZXIgZ29pbmcgdG8gZ2l2ZSB5b3UgdXA=';";
使用这个:
<script nonce="TmV2ZXIgZ29pbmcgdG8gZ2l2ZSB5b3UgdXA=">alert('1')</script>
HIGH
页面对 source/jsonp 进行 JSONP 调用.php传递回调函数的名称,需要修改 jsonp.php 脚本来更改回调函数。
Spoiler: The JavaScript on the page will execute(执行)whatever is returned by the page, changing this to your own code will execute that instead
抓包
修改callback后的参数
IMPOSSIBLE
JSONP 调用的回调函数进行了硬编码,并且 CSP 策略被锁定为仅允许外部脚本。