freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

挖洞经验 | 价值$10000的Facebook SSRF漏洞
2020-12-23 17:03:09

在该Writeup中,作者通过子域名枚举、文件枚举和代码审计方式,成功构造了有效的服务端请求,实现了Facebook某网站的SSRF(服务端请求伪造),可通过该方式探测收集Facebook网站内部信息,漏洞收获了Facebook官方奖励的$10000。以下是作者的漏洞发现过程,非常简单。

子域名枚举

通过对Facebook网站大量的子域名测试枚举,我发现了其中一个子域名网站-phishme.thefacebook.com,它的主页响应为403:

在我的另一篇漏洞Writeup中,我就曾通过这种403响应发现了Facebook的一个高危漏洞-« Story of a weird vulnerability I found on Facebook »

JS脚本文件枚举

在此,我通过一个通用的字典库,针对https://phishme.thefacebook.com/**.js做了JS文件枚举,发现了一个隐藏的JS文件-https://phishme.thefacebook.com/Home.js。

对Home.js的代码审查

阅读了Home.js的代码流程之后,我发现了其中一个有意思的方法函数« sendPhishRequest » ,它针对某些特定链接使用XHR方式请求数据。经深入分析,我了解了其具体的函数运行机制:

Util.sendPhishRequest(‘PhishGetItemData.ashx’, { itemId: itemId, ewsUrl: ewsUrl, token: token }

漏洞利用

经过一番token格式尝试,最终我成功利用上述sendPhishRequest方法,构造了发往Facebook服务端的有效请求。具体参数如下:

itemId: 123
ewsUrl: http://127.0.0.1:PORT
token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7Hg

POC:

https://phishme.thefacebook.com/PhishGetItemData.ashx?itemId=123&ewsUrl=http://127.0.0.1:PORT/&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7Hg


该请求让Facebook服务端抛出了一个405不被允许的响应,而在响应中又以stack-traces栈跟踪方式返回了服务端内部的调试信息。如此这般,通过变换请求中的端口、参数等属性,可探测收集Facebook服务端的内部配置信息,威胁Facebook服务端安全。

漏洞上报和处理进程

2020.8.7    漏洞上报
2020.8.11  漏洞分类
2020.8.11  发布漏洞补丁
2020.12.3  漏洞修复完成
2020.12.3  Facebook奖励$10000

参考来源:medium,编译整理:clouds,转载请注明来自Freebuf.com

# 价值$10000 # Facebook SSRF
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录