关于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, '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:【GitHub传送门】
来源:freebuf.com 2021-05-24 15:28:42 by: Alpha_h4ck
请登录后发表评论
注册