前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用Corsair_scan测试跨域资源共享中的安全问题

如何使用Corsair_scan测试跨域资源共享中的安全问题

作者头像
FB客服
发布2021-07-02 14:39:22
7130
发布2021-07-02 14:39:22
举报
文章被收录于专栏:FreeBufFreeBuf

关于Corsair_scan

Corsair_scan是一款功能强大的安全工具,可以帮助广大研究人员测试跨域资源共享(CORS)中的错误配置问题。

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

CORS (Cross-Origin Resource Sharing,跨域资源共享)是一个系统,它由一系列传输的HTTP头组成,这些HTTP头决定浏览器是否阻止前端 JavaScript 代码获取跨域请求的响应。

同源安全策略 默认阻止“跨域”获取资源。但是 CORS 给了web服务器这样的权限,即服务器可以选择,允许跨域请求访问到它们的资源。

CORS是一种机制,允许从提供第一个资源的域之外的另一个域请求网页上的受限资源。如果未正确配置,未经授权的域将能够访问这些资源。

在实现CORS时,最常见的安全问题就是无法验证请求者的合法身份,我们也经常会看到Access-Control-Allow-Origin的值会被设置为“*”。不幸的是,这属于默认设置,因此将允许Web上的任何域访问该站点的资源。

工具安装

该项目基于Python 3.9开发,但理论上支持在Python 3.x环境下正常工作。

Corsair_scan被设计为以Python模块的方式使用,因此最简单的安装方式就是使用下列pip命令:

代码语言:javascript
复制
pip3 install corsair_scan --user

工具使用

当前版本的Corsair_scan需要以Python包的形式使用,但我们计划在将来发布一个命令行工具版本。

本工具中执行CORS扫描的方法为“corsair_scan”,具体定义如下:

corsair_scan

接收请求列表和用于启用/禁用请求中证书检查的参数。

输入:

data [List]:请求列表,每一个请求都是一个字典结构,其中包含请求的相关数据。其中包括url_data [Dict]:包含所有请求相关数据的字典;url [String]:请求的目标URL;verb [String]:请求的操作(GET、POST、DELETE等);params [String]:请求中的主体内容;headers [Dict]:请求中的所有Header;

verify [Boolean] [Default: True]:给每一个请求中的corsair_scan_single_url发送这个值;

输出:

final_report [List]:包含测试执行的完整报告;report [List]:每一份单独报告的详情列表;summary [Dict]:扫描所检测到的问题详情;

工具使用样例

代码语言:javascript
复制
import corsair_scan

url_data = {}

data = []

verb =  'GET'

url = 'https://example.com/'

params = 'user=user1&password=1234'

headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',

           'Accept-Language': 'en-GB,en;q=0.5', 'Connection': 'keep-alive', 'Upgrade-Insecure-Requests': '1',

           'Origin': 'https://example.com',

           'Host': 'example.com'}

url_data['verb'] = verb

url_data['url'] = url

url_data['params'] = params

url_data['headers'] = headers

data.append(url_data)

print (corsair_scan.corsair_scan(data, verify=True))

响应结果

代码语言:javascript
复制
{'report': [{'fake_origin': {'Access-Control-Allow-Origin': 'https://scarymonster.com',

                             'Origin': 'https://scarymonster.com',

                             'credentials': True,

                             'error': False,

                             'misconfigured': True,

                             'status_code': 200},

             'post-domain': {'Access-Control-Allow-Origin': 'https://example.com.scarymonster.com',

                             'Origin': 'https://example.com.scarymonster.com',

                             'credentials': True,

                             'error': False,

                             'misconfigured': True,

                             'status_code': 200},

             'pre-domain': {'Access-Control-Allow-Origin': 'https://scarymonsterexample.com',

                            'Origin': ' https://scarymonsterexample.com',

                            'credentials': True,

                            'error': False,

                            'misconfigured': True,

                            'status_code': 200},

             'sub-domain': {'Access-Control-Allow-Origin': 'https://scarymonster.example.com',

                            'Origin': 'https://scarymonster.example.com',

                            'credentials': True,

                            'error': False,

                            'misconfigured': True,

                            'status_code': 200},

             'url': 'https://example.com/',

             'verb': 'GET'}],

 'summary': {'error': [], 'misconfigured': [{'credentials': True,

                    'misconfigured_test': ['fake_origin',

                                           'sub-domain',

                                           'pre-domain',

                                           'post-domain'],

                    'status_code': 200,

                    'url': 'https://domain.com',

                    'verb': 'GET'}]}}

项目地址

Corsair_scan:【点击底部阅读原文获取】

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

本文分享自 FreeBuf 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是跨域资源共享(CORS)
  • 工具安装
  • 工具使用
    • corsair_scan
    • 工具使用样例
      • 响应结果
      • 项目地址
      相关产品与服务
      命令行工具
      腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档