news 2026/1/16 3:35:11

实战:我如何通过向Facebook提交漏洞赚取31500美元

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
实战:我如何通过向Facebook提交漏洞赚取31500美元

实战 | 我如何通过向 Facebook 提交漏洞赚取31500美元

Facebook是世界上最大的社交网站,也是使用最广泛的网站之一。

我一直对测试 Facebook 的安全性很感兴趣。在子域枚举期间,我有一个子域是“ https://m-nexus.thefacebook.com/ ”

它将我重定向到“ https://m-nexus.thefacebook.com/servlet/mstrWebAdmin “观察下面的截图:

我快速搜索关键字mstrWebAdmin,发现这是基于MicroStrategy工具构建的商业智能门户:

我用博客证实了这一点:

从 MicroStrategy 的官方配置文档中,我发现有两个端点可以公开访问:

进一步查看 MicroStrategy 的官方配置文档,我发现默认情况下,在商业智能门户(URL:https://m-nexus.thefacebook.com/servlet/mstrWeb )上启用了 HTTP 基本身份验证,然后我观察到

https://m-nexus.thefacebook.com/servlet/taskProc 不需要身份验证。

它从“ taskId ”参数中获取值来执行一些自定义数据收集和内容生成。通过枚举预建任务(Using Intruder),我发现每个预建任务都会检查有效的身份验证会话参数,但处理短 URL 且不检查有效身份验证会话的“ shortURL ”任务。攻击者可以使用此观察来访问此服务而无需任何身份验证。

使用 Burp Suite入侵者的预建任务枚举

我开始对官方文档中提到的所有参数进行模糊测试,但我什么也没找到。😔 每次它给我一条错误消息“源 URL 无效”,状态代码为 500。然后我想,让我们下载托管的 Web 应用程序并开始源代码审查。我下载了一个400多MB的应用程序包。包中有几个脚本和 jar 文件。

我简单地使用jd-gui工具反编译了那个 jar 文件并开始审查代码。我的主要目标是shortURL任务,它处理短 URL 并且不检查有效的身份验证会话。最后我从一个 jar 文件中找到了那个 Java 类。

然后我才知道为什么它每次都给出相同的错误消息,“ shortURL ”任务的“ srcURL ”参数仅采用使用“ https://tinyurl.com/ ”创建的 URL 来导入数据或从中读取数据该 URL。观察以下代码片段:

复制步骤(我发送到 Facebook 的内容):

  1. 打开 Burp Suite代理工具并转到 Burp 菜单并选择“Burp Collaborator 客户端”。生成 Collaborator 负载并将其复制到剪贴板。

  1. 从网络浏览器打开“https://tinyurl.com/”,输入协作者负载并创建其微型 URL。复制创建的微型 URL。

  1. 在以下 URL 的“srcURL”参数中插入复制的“tiny URL”并在浏览器中打开它:
    https://m-nexus.thefacebook.com/servlet/taskProc?taskId=shortURL&taskEnv=xml&taskContentType=json&srcURL={YOUR_TINY_URL_HERE}

  1. 观察 Burp Collaborator 立即点击,它显示收到请求的IP 地址“ 199.201.64.1 ”。

这表明存在外部SSRF漏洞。

  1. IP — 199.201.64.1 属于 Facebook,已通过 whois 记录确认。

  1. 测试内部 SSRF:创建无效内部 IP 地址的微型 URL(例如 123.10.123.10),将其插入“srcURL”参数并观察服务器没有响应。

  1. 再次创建有效内部 IP 地址 (127.0.0.1:8080) 的微型 URL,将其插入“srcURL”参数并观察它是否请求 HTTP 基本身份验证。

通过这种观察,我们可以枚举防火墙环境背后的内部基础设施。我很快向 Facebook 报告了我的发现,但被拒绝了,因为他们认为这不是安全漏洞。观察以下响应:

深入挖掘

我必须拿出证据。我尝试使用 URL 架构(如 file://、dict://、ftp://、gopher:// 等)读取内部信息。还尝试获取云实例的元数据但没有成功。

一段时间后,我终于想出了一些有影响力的例子。以下是我发送给 Facebook 的一些实时攻击场景以及重现步骤:

  1. 反射型跨站脚本(XSS):

2.借助SSRF的钓鱼攻击:

步骤 1.创建并托管一个 Facebook 登录的钓鱼页面,窃取受害者的 Facebook 登录凭据,看起来像一个合法的登录门户。

我将它托管在私人服务器上,即http://ahmedabadexpress.co.in/

步骤 2.从 Web 浏览器打开“ https://tinyurl.com/ ”,创建一个托管钓鱼页面的小 URL,即“ http://ahmedabadexpress.co.in/fb/login/fb.html ”。复制创建的小 URL。

步骤 3.在以下 URL 的“srcURL”参数中插入复制的“tiny URL”并发送给受害者:

https ://m-nexus.thefacebook.com/servlet/taskProc?taskId=shortURL&taskEnv=xml&taskContentType=json&srcURL={YOUR_TINY_URL_HERE }

一旦受害者在此页面上输入他/她的用户名和密码,它就会被保存到“ http: //ahmedabadexpress.co.in/fb/login/usernames.txt ”文件中。受害者将被重定向到真实的 Facebook 登录页面。你可以看到主机名是字符串“m-nexus.thefacebook.com”所以它看起来是合法的。

步骤 4.

导航到http://ahmedab adexpress.co.in/fb/login/usernames.txt

URL 并观察被盗凭证。

攻击者还可能使用此漏洞将用户重定向到其他用于服务恶意软件和类似攻击的恶意网页。

3.指纹内部(非互联网暴露)网络感知服务:

我能够扫描防火墙后面的内部网络。我使用 burp suite intruder 发送了超过 10000 个请求来查找服务器上的开放端口或在该端口上运行的任何应用程序。

经过扫描,我终于找到了一个运行在10303端口的名为“ LightRay ”的应用程序。

在我对此进行进一步调查之前,Facebook 安全团队解决了该漏洞。

最后:

故事才刚刚开始

现在我知道 MicroStrategy Web SDK 托管在 Facebook 的生产服务器上。MicroStrategy Web SDK 是用 Java 编程语言编写的,我喜欢在 Java 代码中查找错误。于是,我使用JD Decompiler工具反编译了SDK的各个jar文件,开始review代码。我还在我的服务器上托管了 SDK,这样如果我发现代码中有任何可疑之处,我可以在那里检查。

经过26天的勤奋和打磨,终于得到了一个有趣的观察结果。

在“com.microstrategy.web.app.task.WikiScrapperTask”类中,我观察到字符串“str1”是由我们作为参数发送的用户提供的输入初始化的。它将检查提供的字符串是否以 http://(或https://)开头,如果是,那么它将调用函数“webScrapper”。

“webScrapper”函数将在内部使用 JSOUP 向提供的 URL 发送 GET 请求。它用于获取和解析 HTML 页面。

又是 SSRF…

不幸的是,这次是一个盲目的 SSRF,所以我无法证明它允许提交内部 GET 请求。但是,从 MicroStrategy Web SDK(部署在域 m-nexus.thefacebook.com 上)的源代码中,我确认这是一个内部 SSRF。

根据这一观察,我们无法枚举防火墙环境背后的内部基础设施,也无法泄露任何敏感信息。我知道如果我向 Facebook 报告这个,他们会拒绝,因为这个漏洞没有影响。

那么下一步是什么?——我这会儿脑子一片空白!

我离开它并开始在 Facebook 主域 (facebook.com) 中寻找新的漏洞

几个月后…

我在 Facebook 上发现了另一个漏洞,其中 URL 缩短器可能会泄露有关服务器的敏感信息。

URL 缩短是万维网上的一项技术,其中可以使统一资源定位符大大缩短,但仍可直接指向所需页面。-维基百科

Facebook 在https://fb.me/上有自己的 URL 缩短服务。此 URL 缩短服务供内部(Facebook 员工)和公共用户使用。我注意到短 URL 只会使用 HTTP Location 标头将用户重定向到长 URL。我观察到网站“fb.me”没有设置速率限制。我正在寻找现有的(和/或隐藏的)网络目录和文件。我针对该 Web 服务器发起了基于字典的暴力攻击(大约 2000 个单词)并分析了响应。在 burp suite intruder 的帮助下,我捕获了几个短链接,这些链接将用户重定向到内部系统,但内部系统会将用户重定向到 Facebook 主域(即 facebook.com)。

这是一个场景:

https://fb.me/xyz

请注意,一些将用户重定向到内部系统的短链接是由 Facebook 内部人员生成的。它可能包含敏感的内部信息。例如

https://our.intern.facebook.com/intern/webmanager?domain=xyz.com&user=admin& token=YXV0aGVudGljYXRpb24gdG9rZW4g

在 burp Suite代理工具中观察https://fb.me/err URL 的 HTTP 响应,它显示日志文件夹的内部完整路径。

我已经能够使用单词列表和入侵者获得更多这样的信息。我创建了一个简单的 python 脚本来自动执行此任务。

观察下面我在测试期间获得的信息的屏幕截图。

我只添加了两个屏幕截图。由于 Facebook 的政策,我不能透露所有信息。此漏洞会泄露内部 HTTP GET 查询。该漏洞会在未经任何身份验证的情况下泄露日志文件夹的内部路径、其他文件路径、使用获取数据的内部系统查询、内部 IP 地址、内部 ID、配置相关信息、私人文档等信息。通过利用此漏洞,攻击者可以枚举系统中存在的有效内部 URL。

漏洞链

现在我有两个漏洞:

  1. 盲目 SSRF——向内部和外部系统提交 GET 请求
  2. 服务器敏感信息泄露——日志文件夹的内部路径、其他文件路径、用于获取数据的内部系统查询、内部 IP 地址、内部 ID

我创建了一个场景,展示了敏感信息泄漏如何对发起路径遍历和服务器端请求伪造 (SSRF) 等特定攻击有用。如果攻击者能够获知网络的内部 IP 地址,他/她就更容易将目标定为内部网络中的系统。

我将两个 PoC 都提交给了 Facebook,我收到了回复:

我观察到盲 SSRF 错误现在已被修补(“wikiScrapper”任务不再可访问/注册)。
嗯…那不公平

我回答了:

我收到回复:

运气不好

经过几天的研究,我发现了另一个盲 SSRF。

从 MicroStrategy web SDK 的源代码中,我确认它是一个内部 SSRF。在“com.microstrategy.web.app.utils.usher”类中,我观察到处理“serverURL”参数的“validateServerURL”函数。“validateServerURL”函数将在内部向提供的 URL 发送 GET 请求。

我用 Burp Collaborator URL 替换了“serverURL”参数的值并发送了 GET 请求。

它观察到 Burp Collaborator 立即点击,它将显示收到请求的IP 地址“ 199.201.64.1 ”。这表明存在 SSRF 漏洞。

我请求他们允许我执行我之前电子邮件中描述的操作。
他们回答说,他们能够重现该错误,并且正在研究补丁。他们会尽快向我通报赏金决定。
几天后终于收到回复:

由Facebook奖励

接下来想测试下MicroStrategy demo portal是否存在SSRF漏洞,结果发现这里也有这个漏洞。我能够使用 AWS 元数据 API 从他服务器获取一些有用的信息

使用SSRF响应http://169.254.169.254/latest/user-data 元数据 API 调用

我将其报告给了 MicroStrategy 的安全团队,我收到了以下回复:

获得MicroStrategy的认可和奖励

结论

该问题现已解决。这是一篇稍长的文章,但我的目的是让您很好地理解如何结合您的所有技能(例如安全代码审查、枚举和脚本知识)来查找关键漏洞。

当我第一次在 Facebook 服务器上遇到这个错误时,我试图将其转换为 RCE,但不幸的是他们实施了良好的安全措施。但是,我从这个漏洞中总共赚了 31500美元(1,000 美元 + 30,000 美元 + 500 美元)。

学习资源

如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你

知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。

读者福利 |CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

一、知识库价值

深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。

广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。

实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。

二、部分核心内容展示

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。

1、网络安全意识

2、Linux操作系统

3、WEB架构基础与HTTP协议

4、Web渗透测试

5、渗透测试案例分享

6、渗透测试实战技巧

7、攻防对战实战

8、CTF之MISC实战讲解

三、适合学习的人群

基础适配人群

  1. 零基础转型者‌:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链‌;
  2. 开发/运维人员‌:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展‌或者转行就业;
  3. 应届毕业生‌:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期‌;

能力提升适配

1、‌技术爱好者‌:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌;

2、安全从业者‌:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌;

3、‌合规需求者‌:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员‌;

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】

‌;

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】

文章来自网上,侵权请联系博主

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/15 15:48:41

干货:渗透测试核心思路-边界突破

干货 | 渗透测试核心思路-边界突破 概述 渗透测试的目标可以是单个主机,也可以是整个内网。在实战中,比如最近如火如荼的HW行动,更多的是对一个目标的内网进行渗透,争取获得所有有价值的资产。完整的内网渗透涉及的步骤如下图所…

作者头像 李华
网站建设 2026/1/11 21:52:18

银行业HR数字化选型避坑指南:从痛点拆解到方案落地的专业解析

【导读】 在利差收窄、强监管和金融科技投入持续加码的背景下,银行的人力资源管理已不再是“人事考勤”的后勤工作,而要同时扛起合规风控、战略转型和组织敏捷的重任。现实中,大量银行仍依赖老旧eHR与Excel来落地绩效追索扣回、科技人才运营和…

作者头像 李华
网站建设 2026/1/11 6:44:42

LobeChat与LangChain结合的可能性探索

LobeChat与LangChain结合的可能性探索 在构建现代AI助手的浪潮中,一个日益凸显的挑战是:如何在保证用户体验流畅的同时,赋予系统真正的“智能”——不只是回答问题,而是理解上下文、调用工具、检索知识、执行任务。许多开源聊天界…

作者头像 李华
网站建设 2026/1/13 20:56:55

计算机毕业设计springboot邯郸市流浪猫狗救助领养系统 基于 SpringBoot 的邯郸流浪动物救助与领养平台 SpringBoot 框架下的邯郸流浪猫狗守护与领养服务系统

计算机毕业设计springboot邯郸市流浪猫狗救助领养系统iz6259d8 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。在人口密集、宠物经济快速升温的邯郸,街头的流浪猫狗数…

作者头像 李华
网站建设 2026/1/13 17:20:49

breakpad

breakPad下载及安装,参考文档:https://blog.51cto.com/u15639793/5296883 1.下载breakpad gitClone http3:/laithub.com/ goggle/breakpad/tree/chrome 64 2.下载linxsyscallsupport.h系统调用头文件: https://chromium.googlesource.com/linux-syscall-support//re…

作者头像 李华