Facebook提供了一个GraphQL节点,管理员可以通过该节点查看用户的广告点击日志。这些广告指的是在Facebook和Instagram上展示的广告,可以是赞助商广告,或侧边栏上显示的常规广告,可以根据不同用户的选择和习惯显示内容。然而,应该注意的是,并非所有用户都能够知道广告的创建者,广告开发基金,目标组以及绑定到账户的信用卡数据。
介绍 目前,Facebook没有公开的GraphQL文档或指南,因此我们首先简要介绍一下如何使用收集的信息对用户做出有根据的猜测。 首先,请按照ApolloData基础教程[Transfer Gate]构建GraphQL测试服务器。参考资料也是graphql.org的两篇文章。 [信息1] [数据2]
如果您想通过Facebook查询对象,我们通常使用根查询来获取有关任何ID的信息(用户有权查看)。可以随意访问公共实体(如页面),但私人实体(如广告帐户)只能由具有特定权限的用户角色访问。
Facebook为我们提供了各种根查询。例如,节点可以在单个调用中接受多个ID并返回多个对象。 Root查询中的默认对象和数据字段如下所示:
侦察 通过使用Shubs(@infosec_au)和Naffy(@nnwakelam)提供的自定义侦察技术,我们找到了一个允许我们获得更多Facebook资源的节点,因此下一步是找出我们可以加载的数据类型。然而,使用Shubs和Naffy提供的方法,这一步的难度实际上并不大。 Facebook使用Invariant Detector(IVD)并使用这种纵深防御系统来检查授权规则中的异常查询请求,因此通过字典测试所有可能的数据域估计将不起作用。
我们还需要尽可能减少错误数量,因为此功能仍处于测试阶段,因此我们不希望在Facebook的日志记录系统中留下太多记录。幸运的是,Facebook的GraphQL还允许我们找出当前的数据类型。
现在我们知道了相关的数据类型,我们可以通过查看现有资源和先前的查询请求来确定系统是否接受这些数据字段。
的PoC 为了使本文中描述的技术真正应用于现实世界,我们需要做的是为用户找到一种方法来点击广告,然后查看对广告访问日志的响应。我们使用Python脚本导出所有使用的GraphQL调用,并向Facebook安全团队提供攻击演示视频。以下是一些视频截图以及攻击者可能会看到的内容: - 广告创建者的个人Facebook帐户; - Facebook广告帐户; - 账户使用的付款方式(万事达卡/维萨卡/Paypal); - 信用卡号码的最后四位数字和卡的到期日期; - 广告的总费用; Facebook的
Instagram的
总结一下 由于Facebook的广告帐户可以被其他角色的用户查看,这意味着其他Facebook活动(包括广告受众和广告统计等信息)很可能被其他人获得。换句话说,当有人点击广告时,广告不仅揭示广告账户中的所有其他广告信息和广告目标组信息,而且泄露广告制作者的信用卡信息和个人信息。出去。 影响 应该指出的是,Facebook不希望广告的制作者被其他人匿名化,因此不应低估这个漏洞对Facebook的影响。我在2017年3月26日首次向Facebook的事件响应团队报告了漏洞信息。经过两个多月的沟通和努力工作,我在2017年6月6日收到了来自Facebook的10,000美元漏洞。奖金。 *参考来源:philippeharewood,FB小编Alpha_h4ck编译 黑客业务列表介绍和一般分类: 类别:攻击入侵破解开发 1:攻击业务订单:暂时取消所有此类业务订单[仅销售常规IDC流量] 2:入侵业务清单:包括网站源代码,办公系统,黑色系统,教育系统等。 3:破解业务类:软件,加密文件,二次打包,脱壳等。 4:二次开发业务清单:软件二次开发,源代码二次开发等 5:其他业务订单:特洛伊木马[通过所有防病毒],远程控制,特殊软件等 备注:未提及的业务订单可根据主要类别查询或直接联系客户服务。为避免浪费双方时间,请在咨询前阅读:业务交易流程及相关说明 注意:仅接受正式业务,个人无权接受。收集此内容。