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


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

关于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命令:

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]:扫描所检测到的问题详情;

工具使用样例

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))

响应结果

{'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,
展开阅读全文

页面更新:2024-06-02

标签:安全问题   资源共享   测试   研究人员   功能强大   字典   详情   版本   方式   服务器   工具   报告   数据   列表   资源   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top