毛病设置装备摆设CORS的3种应用要领 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

毛病设置装备摆设CORS的3种应用要领

申博_安全预警 申博 181次浏览 已收录 0个评论

CVE-2019-5514 VMware Fusion 11 Guest机远程代码执行

前言 这个漏洞允许攻击者通过Web在VMware Fusion guest上执行任意命令。通常VMware Fusion只在localhost上开启websocket监听。攻击者可以通过websocket来完全控制整个VM(创建删除快照,无论你想做什么),包括运行App。运行App需要目标

毛病设置装备摆设CORS的3种运用要领

0x00 提要

在Web状况中,同源战略(SOP)可以或许限定分歧运用之间的信息同享,只许可托管在特定域内运用的信息同享,这是防备体系泄漏敏感信息的一种预防措施。但是,跟着Web运用和微服务运用场景的赓续拓展,在现实状况中人们的确须要将信息从一个子域(subdomain)传输到另外一个子域,或许在分歧域之间传输信息。为了完成页面衬着和症结功用,人们可以或许存在这类需求,比方将接见令牌及会话标识符通报给另外一个运用就是典范的运用场景。

在布置SOP的状况下,为了完成跨域通讯,开发职员必需运用分歧的手艺来绕过SOP,以便通报敏感信息。这类“绕过”发作了太屡次,自身已经成为一个平安题目。因而,为了在不影响运用程序平安状况的前提下完成信息同享,HTML5中引入了跨域资本同享(CORS)这类机制,但这并没有处理一切题目。当人们想偷工减料,或许没有意想到潜伏风险而开始运用默许设置装备摆设或许毛病设置装备摆设的CORS时,就会涌现一些题目。

因而,作为平安剖析职员或许工程师,我们必需明白毛病设置装备摆设的CORS头部会致使什么题目,这一点非常重要。事实上,进击者可以或许运用毛病设置装备摆设的CORS头部来盗取数据,或许入侵全部目的运用。相识相干风险后,我们就可以或许在灾害发作之前实时修复平安短板。

0x01 CORS简介

跨域资本同享(Cross-Origin Resource Sharing,简称为CORS)是可以或许资助Web浏览器以受控体式格局运用XMLHttpRequest API实行跨域要求的一种机制。这类跨域要求中包罗一个Origin头,可以或许用来标识提议该要求的所属域。CORS界说了在Web浏览器和服务端之间运用的一种协定,可以或许肯定是不是许可跨域要求。

0x02 CORS症结头部

有很多HTTP头部与CORS有关,个中在平安方面最为症结的3个相应头以下所示:

  • Access-Control-Allow-Origin:指定哪些域可以或许接见以后域资本。好比,若是requester.com想接见provider.com的资本,那末开发者可以或许运用这个头部来平安地授与requester.comprovider.com相干资本的接见权限。
  • Access-Control-Allow-Credentials:指定浏览器是不是在要求中发送cookie。只要allow-credentials头部的值为true,浏览器才会发送cookie。
  • Access-Control-Allow-Methods:指定可以或许运用哪些HTTP要求要领(如GETPUTDELETE等)来接见资本。开发者可以或许运用该头部来指定requester.com要求provider.com资本时所运用的详细要领,进一步增强平安性。

0x03 三种进击场景

运用CORS头部中毛病设置装备摆设的通配符(*)

最罕见的一种CORS毛病设置装备摆设场景就是在设置可接见资本的域时毛病运用了通配符(如*)。通配符是CORS默许设置的值,这意味着任何域都能接见该站点上的资本。好比,斟酌以下要求:

GET /api/userinfo.php
Host: www.victim.com
Origin: www.victim.com

当我们发送如上要求时,就会收到包罗Access-Control-Allow-Origin头部的一个相应,详细以下:

HTTP/1.0 200 OK
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true

在这个例子中,头部字段中包罗一个通配符(*),这意味着任何域都可以或许接见目的资本。

在测试客户的某个运用时,我们注意到该运用存在这类毛病设置装备摆设题目,我们也运用这一点猎取到了用户的敏感信息,包孕姓名、User ID、Email ID等,终究胜利将这些信息发送到外部服务器。鄙人图中,我们修正了要求的Origin头,把www.victim.com修正成进击者地点的域。

毛病设置装备摆设CORS的3种应用要领

图1. 修正要求中的Origin

我们收到的相应以下图所示,相应头中包罗Access-Control-Allow-Origin: *,这意味着一切站点都可以或许接见victim域的资本。在这个进击场景中,我们运用的是testing.aaa.com这个站点。

毛病设置装备摆设CORS的3种应用要领

图2. 相应数据

由于目的站点可以或许与任何站点同享信息,因而我们运用本身的域进一步运用这一点。我们建立了名为https://testing.aaa.com的一个域,然后在该域中嵌入了运用代码,以便从存在缺点的目的运用盗取敏感信息。当受益者在浏览器中翻开https://testing.aaa.com时,运用代码就可以或许猎取敏感信息,将其发送到进击者的服务器。运用这类进击要领我们可以或许猎取到的信息以下图所示:

毛病设置装备摆设CORS的3种应用要领

图3. 运用将敏感信息发送给进击者

运用毛病婚配的不完全域名

另外一种罕见的毛病设置装备摆设就是许可非完全域名之间的信息同享。好比,斟酌以下一种要求:

GET /api/userinfo.php
Host: provider.com
Origin: requester.com

相应的相应包头以下:

————————————-

申博网络安全巴士站

申博-网络安全巴士站是一个专注于网络安全、系统安全、互联网安全、信息安全,全新视界的互联网安全新媒体。

————————————-

HTTP/1.0 200 OK
Access-Control-Allow-Origin: requester.com
Access-Control-Allow-Credentials: true

若是开发者在设置装备摆设CORS时会考证Origin头部的URL值,个中白名单域名设置为requester.com。如今,当进击者组织以下一个要求时:

GET /api/userinfo.php
Host: example.com
Connection: close
Origin: attackerrequester.com

服务器可以或许会返回以下相应头:

HTTP/1.0 200 OK
Access-Control-Allow-Origin: attackerrequester.com
Access-Control-Allow-Credentials: true

之所以涌现这类状况,多是后端在考证战略上接纳了毛病的设置装备摆设,以下所示:

if ($_SERVER['HTTP_HOST'] == '*requester.com')
 {
  //Access data
  else{ // unauthorized access}
}

我们也在某个客户的运用上发现了这类题目。目的域provider.com会信托以requester.com末端的一切主机名(如attackerrequester.com)。因而,我们可以或许将Origin头改成attackerrequester.com,继承发送要求。

毛病设置装备摆设CORS的3种应用要领

图4. 修正要求中的Origin字段值

相应数据以下所示,个中Access-control-Allow-Origin照搬了我们设置的Origin头,这意味着以requester.com末端的域可以或许接见provider.com域上的资本。

毛病设置装备摆设CORS的3种应用要领

图5. 相应头

我们可以或许接纳与第一种毛病设置装备摆设场景相似的运用体式格局。好比,我们可以或许建立包罗白名单域名的一个新域名,然后在该歹意站点中嵌入运用代码。以便从受益站点中盗取敏感信息。

运用XSS要求跨域站点

为了防备CORS进击,开发者可以或许将频仍要求接见权限信息的域到场白名单中。但是这并不是万全之策,由于纵然白名单中有一个子域存在缺点(比方存在XSS破绽),那末进击者就可以或许打破CORS。

举个例子,某个设置装备摆设代码以下所示,许可requester.com所属的子域接见provider.com的资本:

if ($_SERVER['HTTP_HOST'] == '*.requester.com')
 {
  //Access data
  else{ // unauthorized access}
}

假定某个用户可以或许接见sub.requester.com,但无法接见requester.com,而且sub.requster.com存在XSS破绽。那末用户就可以经由过程跨站剧本进击来进击provider.com

为了演示这类进击要领,我们在同一个域中托管了两个运用。目的CORS运用托管于testingcors.com上,另外一个运用托管于pavan.testingcors.com上,而且后者存在跨站剧本题目。

毛病设置装备摆设CORS的3种应用要领

图6. pavan.testingcors.com存在XSS破绽

运用存在XSS破绽的这个子域,我们可以或许盗取testingcors.com上的敏感信息。我们在Name参数中注入了歹意javascript payload。当该页面加载时,剧本就会实行,猎取testingcors.com上的敏感信息。

毛病设置装备摆设CORS的3种应用要领

图7. 运用XSS进击猎取敏感信息

0x04 总结

CORS是名列OWASP TOP 10的一个平安性毛病设置装备摆设题目。在站点之间同享信息时,人们通常会无视CORS设置装备摆设的重要性。作为开发者或许平安专家,我们须要相识这类破绽的背地缘由和运用体式格局,这一点非常重要。

CVE-2019-5514 VMware Fusion 11 Guest机远程代码执行

前言 这个漏洞允许攻击者通过Web在VMware Fusion guest上执行任意命令。通常VMware Fusion只在localhost上开启websocket监听。攻击者可以通过websocket来完全控制整个VM(创建删除快照,无论你想做什么),包括运行App。运行App需要目标


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明毛病设置装备摆设CORS的3种应用要领
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址