burp靶场--跨域资源共享(CORS)

burp靶场–跨域资源共享(CORS)

https://portswigger.net/web-security/cors

### 跨域资源共享(CORS)
在本节中,我们将解释什么是跨域资源共享 (CORS),描述基于跨域资源共享的攻击的一些常见示例,并讨论如何防范这些攻击。本主题是与 PortSwigger Research 合作编写的,PortSwigger Research 通过演示利用 CORS 错误配置获取比特币和赏金来普及此类攻击。

#### 什么是CORS(跨域资源共享)?
跨源资源共享 (CORS) 是一种浏览器机制,可以对位于给定域之外的资源进行受控访问。它扩展并增加了同源策略 ( SOP ) 的灵活性。然而,如果网站的 CORS 策略配置和实施不当,它也可能带来跨域攻击。CORS 不能防止跨源攻击,例如跨站点请求伪造( CSRF )。

实验1:具有基本起源反射的CORS漏洞

### 实验要求:
该网站具有不安全的CORS配置,因为它信任所有来源。
要完成实验,请编写一些 JavaScript,使用 CORS 检索管理员的 API 密钥并将代码上传到您的漏洞利用服务器。当您成功提交管理员的 API 密钥后,该实验就解决了。
您可以使用以下凭据登录您自己的帐户:wiener:peter

### 实验操作:
检查拦截已关闭,然后使用浏览器登录并访问您的帐户页面。
查看历史记录并观察到您的密钥是通过 AJAX 请求检索到的/accountDetails,并且响应包含Access-Control-Allow-Credentials表明它可能支持 CORS 的标头。
将请求发送到 Burp Repeater,并使用添加的标头重新提交:

Origin: https://example.com
观察标题中反映的来源Access-Control-Allow-Origin。
在浏览器中,转到漏洞利用服务器并输入以下 HTML,替换YOUR-LAB-ID为您唯一的实验室 URL:


单击查看漏洞利用。观察该漏洞是否有效 - 您已登录日志页面,并且您的 API 密钥位于 URL 中。
返回到漏洞利用服务器并单击“向受害者提供漏洞利用”。
单击访问日志,检索并提交受害者的 API 密钥以完成实验。

burp靶场--跨域资源共享(CORS)_第1张图片
burp靶场--跨域资源共享(CORS)_第2张图片
burp靶场--跨域资源共享(CORS)_第3张图片
burp靶场--跨域资源共享(CORS)_第4张图片
burp靶场--跨域资源共享(CORS)_第5张图片
在这里插入图片描述
burp靶场--跨域资源共享(CORS)_第6张图片

实验2:具有可信空源的CORS漏洞

### 实验要求:
该网站具有不安全的CORS配置,因为它信任“空”源。
要完成实验,请编写一些 JavaScript,使用 CORS 检索管理员的 API 密钥并将代码上传到您的漏洞利用服务器。当您成功提交管理员的 API 密钥后,该实验就解决了。
您可以使用以下凭据登录您自己的帐户:wiener:peter

### 实验操作:
检查拦截是否关闭,然后使用 Burp 的浏览器登录您的帐户。点击“我的帐户”。
查看历史记录并观察到您的密钥是通过 AJAX 请求检索到的/accountDetails,并且响应包含Access-Control-Allow-Credentials表明它可能支持 CORS 的标头。
将请求发送到 Burp Repeater,并使用添加的标头重新提交Origin: null.
请注意,“空”原点反映在Access-Control-Allow-Origin标头中。
在浏览器中,转到漏洞利用服务器并输入以下 HTML,替换YOUR-LAB-ID为您唯一的实验室 URL 的 URL 和YOUR-EXPLOIT-SERVER-ID漏洞利用服务器 ID:


请注意 iframe 沙箱的使用,因为这会生成空源请求。

单击“查看漏洞利用”。观察该漏洞是否有效 - 您已登录日志页面,并且您的 API 密钥位于 URL 中。
返回漏洞利用服务器并单击“向受害者提供漏洞利用”。
单击“访问日志”,检索并提交受害者的 API 密钥以完成实验。

burp靶场--跨域资源共享(CORS)_第7张图片
burp靶场--跨域资源共享(CORS)_第8张图片
测试origin:null的跨域资源共享:
burp靶场--跨域资源共享(CORS)_第9张图片
构造恶意脚本放置于自己控制的恶意服务器上,发送origin:null的恶意请求:

<iframe sandbox="allow-scripts allow-top-navigation allow-forms" srcdoc="">iframe>
 
我的是:
<iframe sandbox="allow-scripts allow-top-navigation allow-forms" srcdoc="">iframe>

burp靶场--跨域资源共享(CORS)_第10张图片

在这里插入图片描述
burp靶场--跨域资源共享(CORS)_第11张图片

实验3:受信任的不安全协议的CORS漏洞

【父域允许子域CORS敏感信息,资源存在xss漏洞,从子域发出xss请求父域敏感信息,并将敏感信息发送到hacker控制的服务器上】

### 实验要求:
该网站具有不安全的CORS配置,因为无论协议如何,它都信任所有子域。
要完成实验,请编写一些 JavaScript,使用 CORS 检索管理员的 API 密钥并将代码上传到您的漏洞利用服务器。当您成功提交管理员的 API 密钥后,该实验就解决了。
您可以使用以下凭据登录您自己的帐户:wiener:peter

### 实验操作:
检查拦截是否关闭,然后使用 Burp 的浏览器登录并访问您的帐户页面。
查看历史记录并观察到您的密钥是通过 AJAX 请求检索到的/accountDetails,并且响应包含Access-Control-Allow-Credentials表明它可能支持 CORS 的标头。
将请求发送到 Burp Repeater,并使用添加的标头(Origin: http://subdomain.lab-id其中lab-id是实验室域名)重新提交。
观察标头中反映的来源Access-Control-Allow-Origin,确认 CORS 配置允许从任意子域(HTTPS 和 HTTP)进行访问。
打开产品页面,单击“检查库存”,然后观察是否使用子域上的 HTTP URL 加载该产品。
请注意,该productID参数容易受到XSS攻击。
在浏览器中,转到漏洞利用服务器并输入以下 HTML,替换YOUR-LAB-ID为您唯一的实验室 URL 和YOUR-EXPLOIT-SERVER-ID漏洞利用服务器 ID:


单击查看漏洞利用。观察该漏洞是否有效 - 您已登录日志页面,并且您的 API 密钥位于 URL 中。
返回到漏洞利用服务器并单击“向受害者提供漏洞利用”。
单击访问日志,检索并提交受害者的 API 密钥以完成实验。

burp靶场--跨域资源共享(CORS)_第12张图片
burp靶场--跨域资源共享(CORS)_第13张图片
burp靶场--跨域资源共享(CORS)_第14张图片
burp靶场--跨域资源共享(CORS)_第15张图片

<script>
    document.location="http://stock.YOUR-LAB-ID.web-security-academy.net/?productId=4
                    
                    

你可能感兴趣的:(burp靶场,WEB安全,渗透测试,web安全,网络安全)