读取型CSRF

渗透的时候,遇到一个CORS跨域的漏洞,网上搜索资料发现相关资料很少,但是还是看到一篇很好的文章,按照文章的思路结合实际渗透进行记录

一、CORS跨域资源获取

0x01:什么是CORS

了解CORS跨域资源获取之前先要知道什么是CORS,CORS( Cross-Origin Resource Sharing )跨域资源共享。是使用一种额外的http头是的不同来源的服务器允许访问某服务器的特定资源的机制。

我们知道基于安全性考虑,浏览器和WebView发出的HTTP请求会有限制。例如,XMLHttpRequest及Fetch皆遵守同源政策(same-origin policy)。这代表网络应用程序所使用的这些API只能请求来自和应用程序相同网域的HTTP资源。但是使用了CORS标头时,我们就可以忽略同源策略,允许CORS设定的特殊服务器跨域访问本服务器的资源。

0x02:为什么会产生CORS跨资源获取漏洞

我们知道由于CORS使用一种特殊的http允许非同源域名的资源访问。而这些非同源域名一般由开发者指定的,那么如果开发者没有指定只有特定域名才能跨域访问本服务器的资源呢,那么问题就会随之而来,这样导致任意域名都可以跨域访问这个服务器的资源,那么同略策略就形同虚设了。从而就导致了漏洞的出现

0x03:如何进行漏洞的查找

正如上面所说,CORS采用了一种额外的http来允许跨域访问资源,而这个头在http中为Origin,我们在渗透过程中,抓取请求包时可以在http头中添加这个头部,例如Origin: https://cors.test.com,看返回包里面是否返回了Access-Control-Allow-Origin: https://cors.test.com 。如何成功返回了此响应头,则说明漏洞存在

0x04:如何利用漏洞

找到漏洞之后便可以尝试利用了,利用这个漏洞一般就是两个步骤

1.找到一处敏感信息的接口

2.编写利用的poc

以一次实际渗透的例子来说明,首先验证漏洞存在

有一处获取广告商数据报表的接口,post数据status=0&name=&id=&page_num=20&page_id=1就可以得到数据

我们编写poc,可以使用github上面开源的工具 https://github.com/nccgroup/CrossSiteContentHijacking

下载之后打开

target中填入目标网站接口,post填入需要post过去的数据

成功获取数据,攻击者只需编写一个恶意的url,里面自动提交表单内的数据,用户访问这个url表单自动提交如上面所示的post的数据。再把数据传输到自己的服务器上,那么就可以自动获取到敏感数据。成功进行CORS跨域资源获取。

参考文章: https://gh0st.cn/archives/2018-03-22/1

发表评论

电子邮件地址不会被公开。 必填项已用*标注