CORS跨资源共享
跨源资源共享 (CORS) 是一种浏览器机制,允许网页使用来自其他页面或域的资产和数据。
大多数站点需要使用资源和图像来运行它们的脚本。这些嵌入式资产存在安全风险,因为这些资产可能包含病毒或允许服务器访问黑客。
CORS响应头
CORS通过在服务器端设置响应头来进行配置。当浏览器发起跨域请求时,服务器可以通过设置特定的CORS响应头来告知浏览器是否允许该请求。常见的CORS响应头包括以下几个:
Access-Control-Allow-Origin:指定允许访问该资源的源。可以是具体的源或通配符(*),表示允许来自任意源的访问。
Access-Control-Allow-Methods:指定允许的HTTP方法(如GET、POST、PUT等)。
Access-Control-Allow-Headers:指定允许的请求头字段。
Access-Control-Allow-Credentials:指定是否允许发送身份凭证(如cookies、HTTP认证等)。
Access-Control-Max-Age:指定预检请求(OPTIONS)的有效期,以减少对服务器的频繁请求。
寻找CORS漏洞
在数据包请求体中加入一个origin请求头
origin: http://xxxx.com
观察响应包,发现Origin可控,
Access-Control-Allow-Credentials: true
Access-Control-Allow-origin:http://xxxx.com
还没有验证referer,就说明可以劫持了。
实战原理
如果目标存在CORS跨资源共享漏洞,对方管理员在没有退出自己所管理的网站的情况下,点击恶意攻击者已经构造好的恶意网站,攻击者可以修改Origin字段为任意指定的值,实现绕过浏览器同源策略的限制,基于CORS漏洞发起恶意请求,实现对目标资源的恶意跨域访问,并读取服务器的响应结果,从而造成服务器的信息泄露。
实战演示
发现cors
通过抓包抓到一个可以响应自己sessionid的请求体

加入请求体origin:http://xxxx.com
观察响应体发现存在cors跨资源共享漏洞

本文介绍了CORS跨资源共享的原理,如何通过设置响应头进行配置,并讲解了寻找和利用CORS漏洞的方法。实战演示展示了如何检测和利用此类漏洞,以及提供了修复建议,强调了正确配置和限制来源的重要性。
最低0.47元/天 解锁文章
3043

被折叠的 条评论
为什么被折叠?



