Cross-origin resource sharing (CORS) - 跨源资源共享(CORS)

看我这机翻有个屁用,去看正规的https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS

本文地址 https://portswigger.net/web-security/cors

跨源资源共享(CORS)

在本节中,我们将解释什么是跨源资源共享(CORS),描述一些常见的基于跨源资源共享的攻击示例,并讨论如何防范这些攻击。


什么是CORS(跨源资源共享)?

跨源资源共享(CORS)是一种浏览器机制,它允许对位于给定域之外的资源进行受控访问。它扩展并增加了相同来源策略的灵活性(SOP)。然而,如果网站的CORS策略配置和实现不当,它也为基于跨域的攻击提供了潜在的可能性。CORS并不是针对跨源攻击的保护措施,例如:跨站点请求伪造。


Cross-origin resource sharing (CORS) - 跨源资源共享(CORS)_第1张图片
image.png

同源政策(SOP)

相同来源策略是一种限制性的跨源规范,它限制网站与源域以外的资源交互的能力。许多年前,针对潜在的恶意跨域交互,例如一个网站从另一个网站窃取私有数据,定义了相同的来源策略。它通常允许域向其他域发出请求,但不允许访问响应。

什么是同源政策?

同源政策是一种网络浏览器安全机制,旨在防止网站相互攻击。

同源政策限制一个来源上的脚本访问另一个来源的数据。源由URI方案、域和端口号组成。例如,考虑以下URL:
http://normal-website.com/example/example.html
这使用了该方案:http,域:normal-website.com,以及端口号:80...下表显示了如果上述URL上的内容试图访问其他来源,将如何应用同源政策:

访问URL 允许进入?
http://normal-website.com/example/ 是:相同的方案、域和端口
http://normal-website.com/example2/ 是:相同的方案、域和端口
https://normal-website.com/example/ 否:不同的方案和端口
http://en.normal-website.com/example/ 否:不同领域
http://www.normal-website.com/example/ 否:不同领域
http://normal-website.com:8080/example/ 否:不同端口*

*InternetExplorer将允许此访问,因为IE在应用相同来源的策略时不考虑端口号。

为什么同源政策是必要的?

当浏览器将HTTP请求从一个源发送到另一个源时,与另一个域相关的任何cookie(包括身份验证会话cookie)也会作为请求的一部分发送。这意味着响应将在用户会话中生成,并包含特定于用户的任何相关数据。如果没有相同的来源政策,如果你访问了一个恶意网站,它就可以从gmail读取你的电子邮件,从facebook上读取私人信息等等。

同源政策是如何执行的?

同源政策通常控制JavaScript代码对跨域加载的内容的访问。通常允许跨源加载页面资源.例如,SOP允许通过标签,媒体通过

2

image.png
Cross-origin resource sharing (CORS) - 跨源资源共享(CORS)_第5张图片
image.png

在exploit服务器编辑如下请求发送就好了



image.png

Cross-origin resource sharing (CORS) - 跨源资源共享(CORS)_第6张图片
image.png

因为实验室无法提供中间人攻击的环境,所以在http网站上加入了一个xss漏洞
在exploit服务器上填写代码


解释一下这个代码的逻辑:
首先攻击者发送一个连接给受害者:https://ac0f1fb01ede66b88098e91b01c400f1.web-security-academy.net/exploit
受害者点击这个连接,服务器返回我们写的js脚本,浏览器执行脚本,然后跳转到http://stock.acb31f471e8166d18018e9cc00890072.web-security-academy.net/?productId=1&storeId=1这个页面是有xss的所以浏览器执行xss注入的脚本,向https://acb31f471e8166d18018e9cc00890072.web-security-academy.net/accountDetails发起GET请求,因为Origins:http://stock.acb31f471e8166d18018e9cc00890072.web-security-academy.net是受同源信任的,所以可以得到APIkey,然后脚本把拿到的APIkey作为参数跳转到我们的攻击服务器

CORS vulnerability with internal network pivot attack -- 内部网络支点攻击的CORS漏洞

Cross-origin resource sharing (CORS) - 跨源资源共享(CORS)_第7张图片
image.png

发现内网站点


Cross-origin resource sharing (CORS) - 跨源资源共享(CORS)_第8张图片
image.png

测试是否存在xss


忘了截图了,
利用xss,获取后台管理页面代码


Cross-origin resource sharing (CORS) - 跨源资源共享(CORS)_第9张图片
image.png

CORS+XSS+CSRF删除用户


完成

你可能感兴趣的:(Cross-origin resource sharing (CORS) - 跨源资源共享(CORS))