CORS漏洞其中已经存在很久了,但是国内了解的人不是很多,文章更是少只有少,漏洞平台也没有此分类。

在DefConChina中,陈建军分享的议题中解释的更清楚,有意向的可以找PPT或者视频

owasp内的详细介绍



漏洞描述


CORS,Cross-OriginResource Sharing,跨源资源共享。

CORS是W3C出的一个标准,其思想是使用自定义的HTTP头部让浏览器与服务器进行沟通。因为开发者需要进行跨域进行获取资源,应用场景,在a.com,想获取b.com中的数据,常用的2种方法进行跨域一种为JSONP,一种为CORS.还有html标签也能跨域,有以下几种img, iframe,ink, js等。

cors跨域访问资源示意图:


漏洞产生原因


前面说了,设置了orgin就能进行跨域访问。而如果配置cors不当的话,如Access-Control-Allow-Orgin:的话,就有可能存在问题。

Access-Control-Allow-Origin这个字段的意思是允许跨域访问的网站,配置为的话,默认就能跨域访问所有网站,也就是说orgin这个字段是可控的。当然仅仅有一个orgin字段还不行,这里要说下Access-Control-Allow-Origin-Credentials这个字段。这个字段的意思是是否带cookie跨域访问网站,如果为true的话,就是允许带着cookie跨域访问b网站。所以说,如果攻击者把orgin:设置成自己搭建的网站,功能为接收受害者的cookie。而Access-Control-Allow-Origin-Credentials又设置成true,这时候我们就可以说存在漏洞了。

看到前面漏洞产生原因,主要是Access-Control-Allow-Orgin:kissing_heart:和Access-Control-Allow-Origin-Credentials:true这两个问题。有人可能要问了,这两个成立的话就会存在漏洞?答案是否定的。因为当你跨域的时候,浏览器看到你这两个的设置,会认为是不安全的,就是会拦截你的操作。而Access-Control-Allow-Orgin绑定了一个网站,但是对值没进行一个校验,也就是攻击者抓包把orgin改了,而网站没进行校验,就存在漏洞。

所以

Access-Control-Allow-Origin-Credentials: true

---可能存在漏洞

Access-Control-Allow-Orgin:*

Access-Control-Allow-Origin-Credentials: true

--- 不存在漏洞



常见测试点


1.互联网厂商的api接口

2.聊天的程序的api接口

3.app的api(不过有一些请求需要带有一些额外的请求头,利用起来比较困难)

4.区块链厂商


漏洞检测方法


第一种:

当你看到的返回结果包括

则可能存在cors漏洞


第二种:

一些简单用法:

第三种:

使用burp进行自动化检测

在burp下做如下设置

然后我们便可以使用过滤器查看是否存在cors漏洞



实战案例


首先是一个这样的界面,然后我们抓包,发现有Orgin字段

我们把orgin改为其他地址试试

发现Access-Control-Allow-Orgin已经为我的博客地址并且Access-Control-Allow-Origin-Credentials:true。说明存在这个漏洞,此时我们便可以使用pocbox来获取他人的信息了。


将生成的poc发送给别人即可获取他人的信息。

当然,如果有兴趣的也可以去看一下hackerone上的一个案例:



其他攻击手段


客户端缓存中毒

这种配置允许攻击者利用其他的漏洞。

比如,一个应用返回数据报文头部中包含“X-User”这个字段,这个字段的值没有经过验证就直接输出到返回页面上。


绕过姿势


NULL源

CORS的规范中还提到了“NULL”源。触发这个源是为了网页跳转或者是来自本地HTML文件。目标应用可能会接收“null"源,并且这个可能被测试者(或者攻击者)利用,意外任何网站很容易使用沙盒iframe来获取”null“源

<iframesandbox="allow-jss allow-top-navigation allow-forms"src='data:text/html,<js>**CORSrequest here**</js>’></iframe>

使用上面的iframe产生一个请求类似于下面这样

GET /handler

Host: target.local

Origin: null

如果目标应用接收”null"源,那么服务器将返回类似下面的数据报文

HTTP/1.1 200 OK

Acess-Control-Allow-Origin: null

Access-Control-Allow-Credentials: true


使用目标域名作为子域名

如果目标应用只检查只检查“Origin”中的字符串是否包含“target.local”,那么就可以在自己控制的服务器上创建一个子域名。用这样的方式,请求一般产生自JavaScript代码,并且请求中的“Origin”会像下面这样


注册一个同名的域名

假设,目标应用实现是基于下面的正则表达式去检测“Origin”头部的话:

^https?:\/\/.*.?target.local$

这个?只影响".“这个字符串,因此在“target.local”前面的任何字符串都是被允许的,而不管是否有”."把他们分开。因此,只需要在“origin”末尾包含目标域名就可以绕过上面的限制(这个场景的的目标域名是“target.local”),比如:

攻击者只需要注册一个末尾包含目标域名的新域名就可以利用这样的漏洞了。


漏洞修复方案


(1)如果没有必要就不要开启CORS

(2)严格限制域白名单,而不是使用*

(3)尽量避免使用Access-Control-Allow-Credentials

(5)配置“VARY”头部

(6)如果可能的话避免使用“CREDENTIALS”

(7)限制缓存的时间

(8)限制使用的方法




原创文章未经授权禁止转载,谢谢合作






·END·

发布     👍 0 举报 写留言 🖊   
✋热门推荐
  • 之后,张帆先是命中三分,邹雨宸篮下强势打进,北控打出一波9-2。杰曼突破后分球,刘家昕空位三分出手打进。
  • 相信在文化和旅游部、紫荆文化集团的指导下,在景德镇市委市政府的关注下,在合作方的共同努力下,此次展览一定会在国内艺术界形成一股热潮。实地了解明湖公园项目建设进展
  • hi.你好吖.我叫陈歆琦ovo一个00年的北京小姑娘.喜欢唱歌,是个翻唱小可爱.最爱的是董兴睿.睿猪[猪头]超开心认识你的!!!窝今天就用这个号来装b啦qwq另
  • 时影大神官,初受冠的时影还是少年神官,有少年人特有的无畏,玄衣时影就很隐忍,被杀时候这句“颜儿,我死了,你会难过吗?顾一野的声音,年龄层次分明,小野充满活力和自
  • 第三天,我与外孙早早起床,拿起小水桶,奔向海滩,去捉小鱼小蟹小虾,滩岸宽,很泥泞,但是,在小溪流中有小鱼小虾,在点点的小水洞里有小螃蟹,但是,用手抠螃蟹是很
  • “后悔没能经常拥抱曾温暖的你”……梨泰院惨案遇难者遗属聚首哭泣的日子 : 韩民族日报“当你出生后被爸爸抱在怀里时,没能经常拥抱温暖的你,太后悔了……爸爸妈妈送你
  • 培训机构被监管、海外股价暴跌小升初电视剧《小舍得》上热搜,引发焦虑家长共鸣+5月19日,海淀区教委发布通报,称已立即核查并叫停“优才教育”准备进行的线上学科考试
  • 校园爱情感谢有王安宇,哦不,是我格局太小了,言情剧感谢有你王安宇,请多演恋爱戏给我们看看!特别是憋了半集之后,当罗娜表示,你是我第一个徒弟,我对你和对别人不一样
  • 今天新到了四条小裙子,有一条明明是正常码数,我穿上却异常的紧,胳膊抬到水平就很困难了,这是我从来没有遇到过的情况,我受到了非常大的打击[微笑]于是我量了一下从头
  • 所谓“顶天”是“十二五”至今,团队已完成共9个卫星型号、17台光学遥感载荷的研制工作,在浩瀚星空,扬起中国红。据了解,飞鹤乳业生产事业部技术组由13人组成,其中
  • 然后四个人就出门了,孩外婆去了孩他奶那,我们带娃去了万达(我长这么大,第一次看见有专门的儿童厕所)玩了游戏机,也吃了我心心念念的面包(没记忆中的好吃,也没记忆中
  • [星星]项目信息项目名称:办公空间设计主创团队:宋琼、石允贝、陈启行、许有亮、李健项目面积:2000㎡完工日期:2020年#办公室设计# #写字楼装修# #
  • 2022年全面真实地掌握贫困户的基本状况,做到精准识别,精准帮扶,持续推进贫困户帮扶民生实事进度,向电工厂社区详细询问贫困户家庭成员的工作状况、住房状况、健康状
  • 好久没上Memo了艰难的欧洲订期一直拖到现在才到虽然现在国内也有代理(在没被发现控架之前能放一天是一天)茵莱茶桂是我私心很喜欢的一只一直是我心中的白月光前调有点
  • 终有一天,我们会静下心来,像个局外人一样,回首自己的故事,然后笑着摇摇头,浮生不过梦一场,所以能治愈我们的,从来都不是时间,而是内心的那一份释怀和感恩。我感恩一
  • #商城身边事#【商城县人力资源和社会保障“援企稳岗”评审小组办公室“援企稳岗”补贴公示】根据《河南省人力资源和社会保障厅 河南省财政厅关于失业保险支持企业稳定岗
  • 佛之法身遍一切处,亦入众生心想中,故此处“顶放十道,百宝光明”是表十法界众生本具佛性顶法中,又各具十法界。时已夜深,有一天神,殊胜光明,遍照园中,来至佛所,恭敬
  • 不要犯傻,不要刻意去改变什么,只管奔赴,不要问奔赴的意义,山河湖海,日月星辰,只要能让你开心的,都是值得拥有的。一路艰辛,一切也无需纠结,只要努力,早晚你会发现
  • 【¥20.9 】厨房食品收纳罐装面条盒子五谷杂粮储物罐保鲜收纳盒杂粮罐干果盒 颜色随机-3个 [绿丝带]#我的心动好物# 多用途厨房密封储藏罐,内置密封圈,
  • #2022.11.07#43/160/88胃息肉术后不能好好吃饭的第8天•早餐山药小米糊,蒸南瓜(尽量嚼到糊糊状才咽下)上午苹果水当茶喝(听水苹果水养胃)•午餐