在 xray 被动扫描的时候无意间看到了
baseline/cors/reflected
,因为是未接触过的东西 简单总结一下,虽然到了最后换来了个 风险过低已忽略就是了
漏洞介绍
首先明白几个概念 Origin(源)、SOP(同源策略) 和 CROS(跨域资源访问) 分别是什么
Origin
三个要素构成了Origin,分别是
- 访问 Web 内容时的协议(http://)
- 域名(example.com)
- 端口(:80)
三者统称为源 Origin详解
SOP
同源策略(Same Origin Policy),同源策略是基于浏览器的安全策略,它限制了网站之间不能随意互相读取和访问对方的资源。只有请求源(本地)和目标源(服务器)相同时,才能对相应资源进行读取。 同源策略详解
CORS
跨域资源共享(Cross-Origin Resource Sharing)随着发展,业务不满足于内部的资源访问,于是便有了CORS(跨域资源共享)机制,开发者可以配置具体允许哪些源对服务器的资源进行访问,但是如果未进行配置,用户只要在请求标头 Origin 字段中加入允许访问的地址,那么就可以构建任意的可允许访问的源(Access-Control-Allow-Origin)
通常 Access-Control-Allow-Origin 字段会在服务器的响应数据包内 请求标头Origin详解
同源与不同源的例子
假设服务器地址为 http://example.com
几个同源的例子
http://example.com
http://example.com/1.php
http://example.com/2.php
不同源的例子
http://example.com
https://example.com
http://example.com:8080
漏洞是如何产生的
上文提到了 请求标头 Origin 是可以构建的,假设服务器没有对字段做严格的限制,那么我们可以构造任意字段,让服务器的资源可提供给任意的第三方服务器。
那么服务器同时满足下面三点要求,则可能构成CORS漏洞
开启了 CORS(跨域资源共享)
未对Origin(请求标头)的内容做限制
未限制 Access-Control-Allow-Origin(允许访问的源) 字段
靶场漏洞复现
这里使用 DoraBox靶场: https://github.com/0verSp4ce/DoraBox
本地搭建环境,访问 URL http://localhost/DoraBox/cs