关于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_scanurl_data = {}data = []verb = 'GET'url = 'https://exle.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://exle.com', 'Host': 'exle.com'} url_data['verb'] = verburl_data['url'] = urlurl_data['params'] = paramsurl_data['headers'] = headersdata.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://exle.com.scarymonster.com', 'Origin': 'https://exle.com.scarymonster.com', 'credentials': True, 'error': False, 'misconfigured': True, 'status_code': 200}, 'pre-domain': {'Access-Control-Allow-Origin': 'https://scarymonsterexle.com', 'Origin': ' https://scarymonsterexle.com', 'credentials': True, 'error': False, 'misconfigured': True, 'status_code': 200}, 'sub-domain': {'Access-Control-Allow-Origin': 'https://scarymonster.exle.com', 'Origin': 'https://scarymonster.exle.com', 'credentials': True, 'error': False, 'misconfigured': True, 'status_code': 200}, 'url': 'https://exle.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传送门】
|