secskill
Search…
1.35 cors漏洞
CORS漏洞其中已经存在很久了,但是国内了解的人不是很多,文章更是少只有少,漏洞平台也没有此分类。
在DefConChina中,陈建军分享的议题中解释的更清楚,有意向的可以找PPT或者视频
owasp内的详细介绍

漏洞描述

CORS,Cross-Origin Resource Sharing,跨源资源共享。
CORS是W3C出的一个标准,其思想是使用自定义的HTTP头部让浏览器与服务器进行沟通。因为开发者需要进行跨域进行获取资源,应用场景,在a.com,想获取b.com中的数据,常用的2种方法进行跨域 一种为JSONP,一种为CORS.还有html标签也能跨域,有以下几种 img, iframe,ink, script
cors跨域访问资源示意图:
Could not load image
假设用户登陆一个含有CORS配置网站vuln.com,同时又访问了攻击者提供的一个链接evil.com。 evil.com的网站向vuln.com这个网站发起请求获取敏感数据,浏览器能否接收信息取决于vuln.com的配置。
如果vuln.com配置了Access-Control-Allow-Origin头且为预期,那么允许接收,否则浏览器会因为同源策略而不接收。
常见测试点:
1.互联网厂商的api接口
2.聊天的程序的api接口
3.app的api(不过有一些请求需要带有一些额外的请求头,利用起来比较困难)
4.区块链厂商

漏洞等级

低危

漏洞危害

造成跨域问题,可能造成信息泄露等危害。

漏洞检测方法

第一种:
当你看到的返回结果包括
Access-Control-Allow-Credentials: true Access-Control-Allow-Origin: https://evil.com
第二种:
github上提供了一个关于扫描CORS配置漏洞的脚本,CORScanner
参数如下:
[email protected]:~/Desktop/CORScanner# python cors_scan.py -h
usage: cors_scan.py [-h] [-u URL] [-i INPUT] [-t THREADS] [-o OUTPUT]
[-v [VERBOSE]] [-d [HEADERS [HEADERS ...]]]
OPTIONS:
-h, --help show this help message and exit
-u URL, --url URL URL/domain to check it's CORS policy
-i INPUT, --input INPUT
URL/domain list file to check their CORS policy
-t THREADS, --threads THREADS
Number of threads to use for CORS scan
-o OUTPUT, --output OUTPUT
Save the results to text file
-v [VERBOSE], --verbose [VERBOSE]
Enable Verbosity and display results in realtime
-d [HEADERS [HEADERS ...]], --headers [HEADERS [HEADERS ...]]
Add headers to the request.
Example: python cors_scan.py -u google.com
第三种:
使用burp进行自动化检测
在burp下做如下设置
Could not load image
Could not load image
即可自动检测cors漏洞
Could not load image

漏洞利用方法

详见下文

漏洞修复方案

(1)如果没有必要就不要开启CORS
(2)严格限制域白名单,而不是使用*
(3)尽量避免使用Access-Control-Allow-Credentials
(4)对于orgin域名进行严格限制,可信域名限制,详细限制,如信任子域名 *.test.com 如果检查域名后缀方式请采用 .test.com
(5)配置“VARY”头部
(6)如果可能的话避免使用“CREDENTIALS”
(7)限制缓存的时间
(8)限制使用的方法

漏洞案例

hackerone上一个500dollar的漏洞
Copy link
On this page
漏洞描述
漏洞等级
漏洞危害
漏洞检测方法
漏洞利用方法
漏洞修复方案
漏洞案例