Content Security Policy (CSP) Bypass

版权声明:本文为博主原创文章,未经博主允许不得转载。如有问题,欢迎指正。 https://blog.csdn.net/qq_26406447/article/details/90216845

Content Security Policy (CSP) Bypass

前言

Content Security Policy(网页安全政策),缩写 CSP

首先我们要理解什么是CSP,下面的博文讲的还是很清楚

Content Security Policy 入门教程

Content Security Policy (CSP) is a computer security standard introduced to prevent cross-site scripting (XSS), clickjacking and other code injection attacks resulting from execution of malicious content in the trusted web page context. ——维基百科

可以从维基百科的的介绍看到,CSP是一种计算机安全标准,主要用来防御xss等注入。2012年出了版本1,2014年出了Level2,2015开始研发Level3.可以看到这个技术还是很新的,(感觉安全这方面也是越来越重视,现在感觉很多的web安全策略都直接在框架中已经完善了,前面看Django框架看到它的orm,程序员只要正常使用接口,我们就很难用前面学的SQL注入了)

这里的dvwa练习有Content Security Policy,正好学习一下。

练习

Low

1
这里是要我们输入资源,然后我们的资源能被执行就OK
2
这里我们查看元素可以看到它的CSP里面的内容

这里面有一个pastebin网站,这个网站是一个快速分享文本的网站…(网站就是下图那样)
3
然后我们来测试一下,弹个cookie
4
生成成功后,我们点击raw获得连接
5
把获得的url输入dvwa,就可以看到成功的弹出cookie
6
简单的说,这里用CSP的时候就不要给这种不安全的网站,不然防护限制用处就不大了

Medium

还是先抓包看
7
这里可以看到有"nonce",“unsafe-inline”

这里我觉得考察点就是我们队script-src中的参数(特殊值)的理解

‘unsafe-inline’:允许执行页面内嵌的<script>标签和事件监听函数
unsafe-eval:允许将字符串当作代码执行,比如使用eval、setTimeout、setInterval和Function等函数。
nonce值:每次HTTP回应给出一个授权token,页面内嵌脚本必须有这个token,才会执行
hash值:列出允许执行的脚本代码的Hash值,页面内嵌脚本的哈希值只有吻合的情况下,才能执行。

我们可以看到这个语句中有self没有别的域所以我们很难让目标下载我们的js文件,但unsafe-inline这个参数让我们有了直接插入js代码的可能,然后这里的nonce是我们需要在js里嵌套的东西

这里注意的是nonce后面是等号不是 - 了
8
可以看到也成功的弹出了cookie
9
Medium我感觉是在帮我们更深入的理解CSP的运用,参数的配置

High

10
High级别和前面级别就不太一样了,这里是点击按钮返回结果

我们也可以看到这里的script-src ‘self’ ,这里我已经是没有任何想法了…
11
看了下别人的博客

然后我们可以发现请求逻辑在high.js里面
12
可以看到里面的逻辑
13
前端的知识确实还有所欠缺,看着也不是很理解

客户端点击按钮后,会在 html 中创建 <script src=“http://x.x.x.x:yyyy/vulnerabilities/csp/source/jsonp.php?callback=solveSum”></script> 这样的标签
因为 script 不同于 ajax,所以可以跨域发送的
服务器就根据 callback 请求,返回 solveSum({“answer”:“15”}) , 就可以调用 high.js 中的solveSum 有点绕。

这里的jsonp方式可以自行查阅,因为jsonp所以可以实现跨域了(不知道这里说的对不对)

这里可以参考DVWA 黑客攻防实战(十五) 绕过内容安全策略 Content Security Policy (CSP) Bypass

利用方法也有讲解

Impossible

url中没有callback,也只允许访问本站资源。

总结

虽然说CSP标准提出来有些年了,但我访问网页也看了下其实用的并不是那么多啊,包括我访问淘宝和京东那些网站也没有看到CSP的影子。

所以整体应该还算是一个较新的技术吧,但确实我感觉CSP在安全方面设置的好的话,对xss等注入是有一个较好的防范的,但一些网站想要设置合适的CSP也不是容易的事,所以就目前的环境而言CSP还是存在绕过的

参考

  1. Content Security Policy 入门教程
  2. CSP(Content-Security-Policy)内容安全策略
  3. DVWA 黑客攻防实战(十五) 绕过内容安全策略 Content Security Policy (CSP) Bypass
  4. Content Security Policy (CSP) 是什么?为什么它能抵御 XSS 攻击?

猜你喜欢

转载自blog.csdn.net/qq_26406447/article/details/90216845